home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / Movies.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  189.4 KB  |  5,240 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        Movies.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1990-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __MOVIES__
  18. #define __MOVIES__
  19.  
  20. #ifndef __QUICKDRAW__
  21.     #include <Quickdraw.h>
  22. #endif
  23.  
  24. #ifndef __ALIASES__
  25.     #include <Aliases.h>
  26. #endif
  27.  
  28. #ifndef __EVENTS__
  29.     #include <Events.h>
  30. #endif
  31.  
  32. #ifndef __MENUS__
  33.     #include <Menus.h>
  34. #endif
  35.  
  36. #ifndef __COMPONENTS__
  37.     #include <Components.h>
  38. #endif
  39.  
  40. #ifndef __IMAGECOMPRESSION__
  41.     #include <ImageCompression.h>
  42. #endif
  43.  
  44.  
  45.  
  46.  
  47. #if PRAGMA_ONCE
  48. #pragma once
  49. #endif
  50.  
  51. #ifdef __cplusplus
  52. extern "C" {
  53. #endif
  54.  
  55. #if PRAGMA_IMPORT
  56. #pragma import on
  57. #endif
  58.  
  59. #if PRAGMA_STRUCT_ALIGN
  60.     #pragma options align=mac68k
  61. #elif PRAGMA_STRUCT_PACKPUSH
  62.     #pragma pack(push, 2)
  63. #elif PRAGMA_STRUCT_PACK
  64.     #pragma pack(2)
  65. #endif
  66.  
  67.  
  68. /*  "kFix1" is defined in FixMath as "fixed1"  */
  69. /* error codes are in Errors.[haa] */
  70. /* gestalt codes are in Gestalt.[hpa] */
  71. enum {
  72.     MovieFileType                = FOUR_CHAR_CODE('MooV'),
  73.     MovieScrapType                = FOUR_CHAR_CODE('moov')
  74. };
  75.  
  76. enum {
  77.     MovieResourceType            = FOUR_CHAR_CODE('moov'),
  78.     MovieForwardPointerResourceType = FOUR_CHAR_CODE('fore'),
  79.     MovieBackwardPointerResourceType = FOUR_CHAR_CODE('back')
  80. };
  81.  
  82. enum {
  83.     MovieResourceAtomType        = FOUR_CHAR_CODE('moov'),
  84.     MovieDataAtomType            = FOUR_CHAR_CODE('mdat'),
  85.     FreeAtomType                = FOUR_CHAR_CODE('free'),
  86.     SkipAtomType                = FOUR_CHAR_CODE('skip'),
  87.     WideAtomPlaceholderType        = FOUR_CHAR_CODE('wide')
  88. };
  89.  
  90. enum {
  91.     MediaHandlerType            = FOUR_CHAR_CODE('mhlr'),
  92.     DataHandlerType                = FOUR_CHAR_CODE('dhlr')
  93. };
  94.  
  95. enum {
  96.     VideoMediaType                = FOUR_CHAR_CODE('vide'),
  97.     SoundMediaType                = FOUR_CHAR_CODE('soun'),
  98.     TextMediaType                = FOUR_CHAR_CODE('text'),
  99.     BaseMediaType                = FOUR_CHAR_CODE('gnrc'),
  100.     MPEGMediaType                = FOUR_CHAR_CODE('MPEG'),
  101.     MusicMediaType                = FOUR_CHAR_CODE('musi'),
  102.     TimeCodeMediaType            = FOUR_CHAR_CODE('tmcd'),
  103.     SpriteMediaType                = FOUR_CHAR_CODE('sprt'),
  104.     FlashMediaType                = FOUR_CHAR_CODE('flsh'),
  105.     MovieMediaType                = FOUR_CHAR_CODE('moov'),
  106.     TweenMediaType                = FOUR_CHAR_CODE('twen'),
  107.     ThreeDeeMediaType            = FOUR_CHAR_CODE('qd3d'),
  108.     HandleDataHandlerSubType    = FOUR_CHAR_CODE('hndl'),
  109.     ResourceDataHandlerSubType    = FOUR_CHAR_CODE('rsrc'),
  110.     URLDataHandlerSubType        = FOUR_CHAR_CODE('url '),
  111.     WiredActionHandlerType        = FOUR_CHAR_CODE('wire')
  112. };
  113.  
  114. enum {
  115.     VisualMediaCharacteristic    = FOUR_CHAR_CODE('eyes'),
  116.     AudioMediaCharacteristic    = FOUR_CHAR_CODE('ears'),
  117.     kCharacteristicCanSendVideo    = FOUR_CHAR_CODE('vsnd'),
  118.     kCharacteristicProvidesActions = FOUR_CHAR_CODE('actn'),
  119.     kCharacteristicNonLinear    = FOUR_CHAR_CODE('nonl'),
  120.     kCharacteristicCanStep        = FOUR_CHAR_CODE('step'),
  121.     kCharacteristicHasNoDuration = FOUR_CHAR_CODE('noti')
  122. };
  123.  
  124. enum {
  125.     kUserDataMovieControllerType = FOUR_CHAR_CODE('ctyp'),
  126.     kUserDataName                = FOUR_CHAR_CODE('name'),
  127.     kUserDataTextAuthor            = FOUR_CHAR_CODE('©aut'),
  128.     kUserDataTextComment        = FOUR_CHAR_CODE('©cmt'),
  129.     kUserDataTextCopyright        = FOUR_CHAR_CODE('©cpy'),
  130.     kUserDataTextCreationDate    = FOUR_CHAR_CODE('©day'),
  131.     kUserDataTextDescription    = FOUR_CHAR_CODE('©des'),
  132.     kUserDataTextDirector        = FOUR_CHAR_CODE('©dir'),
  133.     kUserDataTextDisclaimer        = FOUR_CHAR_CODE('©dis'),
  134.     kUserDataTextFullName        = FOUR_CHAR_CODE('©nam'),
  135.     kUserDataTextHostComputer    = FOUR_CHAR_CODE('©hst'),
  136.     kUserDataTextInformation    = FOUR_CHAR_CODE('©inf'),
  137.     kUserDataTextKeywords        = FOUR_CHAR_CODE('©key'),
  138.     kUserDataTextMake            = FOUR_CHAR_CODE('©mak'),
  139.     kUserDataTextModel            = FOUR_CHAR_CODE('©mod'),
  140.     kUserDataTextOriginalFormat    = FOUR_CHAR_CODE('©fmt'),
  141.     kUserDataTextOriginalSource    = FOUR_CHAR_CODE('©src'),
  142.     kUserDataTextPerformers        = FOUR_CHAR_CODE('©prf'),
  143.     kUserDataTextProducer        = FOUR_CHAR_CODE('©prd'),
  144.     kUserDataTextProduct        = FOUR_CHAR_CODE('©PRD'),
  145.     kUserDataTextSoftware        = FOUR_CHAR_CODE('©swr'),
  146.     kUserDataTextSpecialPlaybackRequirements = FOUR_CHAR_CODE('©req'),
  147.     kUserDataTextWarning        = FOUR_CHAR_CODE('©wrn'),
  148.     kUserDataTextWriter            = FOUR_CHAR_CODE('©wrt'),
  149.     kUserDataTextEditDate1        = FOUR_CHAR_CODE('©ed1'),
  150.     kUserDataTextChapter        = FOUR_CHAR_CODE('©chp')
  151. };
  152.  
  153. enum {
  154.     kUserDataUnicodeBit            = 1L << 7
  155. };
  156.  
  157. enum {
  158.     DoTheRightThing                = 0
  159. };
  160.  
  161.  
  162.  
  163. struct MovieRecord {
  164.     long                             data[1];
  165. };
  166. typedef struct MovieRecord                MovieRecord;
  167.  
  168. typedef MovieRecord *                    Movie;
  169. typedef Movie *                            MoviePtr;
  170.  
  171. struct TrackRecord {
  172.     long                             data[1];
  173. };
  174. typedef struct TrackRecord                TrackRecord;
  175.  
  176. typedef TrackRecord *                    Track;
  177.  
  178. struct MediaRecord {
  179.     long                             data[1];
  180. };
  181. typedef struct MediaRecord                MediaRecord;
  182.  
  183. typedef MediaRecord *                    Media;
  184.  
  185. struct UserDataRecord {
  186.     long                             data[1];
  187. };
  188. typedef struct UserDataRecord            UserDataRecord;
  189.  
  190. typedef UserDataRecord *                UserData;
  191.  
  192. struct TrackEditStateRecord {
  193.     long                             data[1];
  194. };
  195. typedef struct TrackEditStateRecord        TrackEditStateRecord;
  196.  
  197. typedef TrackEditStateRecord *            TrackEditState;
  198.  
  199. struct MovieEditStateRecord {
  200.     long                             data[1];
  201. };
  202. typedef struct MovieEditStateRecord        MovieEditStateRecord;
  203.  
  204. typedef MovieEditStateRecord *            MovieEditState;
  205.  
  206. struct SpriteWorldRecord {
  207.     long                             data[1];
  208. };
  209. typedef struct SpriteWorldRecord        SpriteWorldRecord;
  210.  
  211. typedef SpriteWorldRecord *                SpriteWorld;
  212.  
  213. struct SpriteRecord {
  214.     long                             data[1];
  215. };
  216. typedef struct SpriteRecord                SpriteRecord;
  217.  
  218. typedef SpriteRecord *                    Sprite;
  219.  
  220. struct QTTweenerRecord {
  221.     long                             data[1];
  222. };
  223. typedef struct QTTweenerRecord            QTTweenerRecord;
  224.  
  225. typedef QTTweenerRecord *                QTTweener;
  226.  
  227. struct SampleDescription {
  228.     long                             descSize;
  229.     long                             dataFormat;
  230.     long                             resvd1;
  231.     short                             resvd2;
  232.     short                             dataRefIndex;
  233. };
  234. typedef struct SampleDescription        SampleDescription;
  235. typedef SampleDescription *                SampleDescriptionPtr;
  236. typedef SampleDescriptionPtr *            SampleDescriptionHandle;
  237. typedef struct OpaqueQTBandwidthReference*  QTBandwidthReference;
  238. typedef struct OpaqueQTScheduledBandwidthReference*  QTScheduledBandwidthReference;
  239.  
  240. typedef Handle                             QTAtomContainer;
  241. typedef long                             QTAtom;
  242. typedef long                             QTAtomType;
  243. typedef long                             QTAtomID;
  244. /* QTFloatDouble is the 64-bit IEEE-754 standard*/
  245. typedef Float64                         QTFloatDouble;
  246. /* QTFloatSingle is the 32-bit IEEE-754 standard*/
  247. typedef Float32                         QTFloatSingle;
  248.  
  249.  
  250.  
  251. struct SoundDescription {
  252.     long                             descSize;                    /* total size of SoundDescription including extra data */
  253.     long                             dataFormat;                    /* sound format */
  254.     long                             resvd1;                        /* reserved for apple use. set to zero */
  255.     short                             resvd2;                        /* reserved for apple use. set to zero */
  256.     short                             dataRefIndex;
  257.     short                             version;                    /* which version is this data */
  258.     short                             revlevel;                    /* what version of that codec did this */
  259.     long                             vendor;                        /* whose  codec compressed this data */
  260.     short                             numChannels;                /* number of channels of sound */
  261.     short                             sampleSize;                    /* number of bits per sample */
  262.     short                             compressionID;                /* unused. set to zero. */
  263.     short                             packetSize;                    /* unused. set to zero. */
  264.     UnsignedFixed                     sampleRate;                    /* sample rate sound is captured at */
  265. };
  266. typedef struct SoundDescription            SoundDescription;
  267. typedef SoundDescription *                SoundDescriptionPtr;
  268. typedef SoundDescriptionPtr *            SoundDescriptionHandle;
  269. /* version 1 of the SoundDescription record*/
  270.  
  271. struct SoundDescriptionV1 {
  272.                                                                 /* original fields*/
  273.     SoundDescription                 desc;
  274.                                                                 /* fixed compression ratio information*/
  275.     unsigned long                     samplesPerPacket;
  276.     unsigned long                     bytesPerPacket;
  277.     unsigned long                     bytesPerFrame;
  278.     unsigned long                     bytesPerSample;
  279.                                                                 /* additional atom based fields ([long size, long type, some data], repeat)*/
  280. };
  281. typedef struct SoundDescriptionV1        SoundDescriptionV1;
  282. typedef SoundDescriptionV1 *            SoundDescriptionV1Ptr;
  283. typedef SoundDescriptionV1Ptr *            SoundDescriptionV1Handle;
  284.  
  285. struct TextDescription {
  286.     long                             descSize;                    /* Total size of TextDescription*/
  287.     long                             dataFormat;                    /* 'text'*/
  288.  
  289.     long                             resvd1;
  290.     short                             resvd2;
  291.     short                             dataRefIndex;
  292.  
  293.     long                             displayFlags;                /* see enum below for flag values*/
  294.  
  295.     long                             textJustification;            /* Can be: teCenter,teFlush -Default,-Right,-Left*/
  296.  
  297.     RGBColor                         bgColor;                    /* Background color*/
  298.  
  299.     Rect                             defaultTextBox;                /* Location to place the text within the track bounds*/
  300.     ScrpSTElement                     defaultStyle;                /* Default style (struct defined in TextEdit.h)*/
  301.     char                             defaultFontName[1];            /* Font Name (pascal string - struct extended to fit) */
  302. };
  303. typedef struct TextDescription            TextDescription;
  304. typedef TextDescription *                TextDescriptionPtr;
  305. typedef TextDescriptionPtr *            TextDescriptionHandle;
  306.  
  307. struct SpriteDescription {
  308.     long                             descSize;                    /* total size of SpriteDescription including extra data */
  309.     long                             dataFormat;                    /*  */
  310.     long                             resvd1;                        /* reserved for apple use */
  311.     short                             resvd2;
  312.     short                             dataRefIndex;
  313.     long                             version;                    /* which version is this data */
  314.     OSType                             decompressorType;            /* which decompressor to use, 0 for no decompression */
  315.     long                             sampleFlags;                /* how to interpret samples */
  316. };
  317. typedef struct SpriteDescription        SpriteDescription;
  318. typedef SpriteDescription *                SpriteDescriptionPtr;
  319. typedef SpriteDescriptionPtr *            SpriteDescriptionHandle;
  320.  
  321. struct FlashDescription {
  322.     long                             descSize;
  323.     long                             dataFormat;
  324.     long                             resvd1;
  325.     short                             resvd2;
  326.     short                             dataRefIndex;
  327.     long                             version;                    /* which version is this data */
  328.     OSType                             decompressorType;            /* which decompressor to use, 0 for no decompression */
  329.     long                             flags;
  330. };
  331. typedef struct FlashDescription            FlashDescription;
  332. typedef FlashDescription *                FlashDescriptionPtr;
  333. typedef FlashDescriptionPtr *            FlashDescriptionHandle;
  334.  
  335. struct ThreeDeeDescription {
  336.     long                             descSize;                    /* total size of ThreeDeeDescription including extra data */
  337.     long                             dataFormat;                    /*  */
  338.     long                             resvd1;                        /* reserved for apple use */
  339.     short                             resvd2;
  340.     short                             dataRefIndex;
  341.     long                             version;                    /* which version is this data */
  342.     long                             rendererType;                /* which renderer to use, 0 for default */
  343.     long                             decompressorType;            /* which decompressor to use, 0 for default */
  344. };
  345. typedef struct ThreeDeeDescription        ThreeDeeDescription;
  346. typedef ThreeDeeDescription *            ThreeDeeDescriptionPtr;
  347. typedef ThreeDeeDescriptionPtr *        ThreeDeeDescriptionHandle;
  348.  
  349. struct DataReferenceRecord {
  350.     OSType                             dataRefType;
  351.     Handle                             dataRef;
  352. };
  353. typedef struct DataReferenceRecord        DataReferenceRecord;
  354.  
  355. typedef DataReferenceRecord *            DataReferencePtr;
  356. /*--------------------------
  357.   Music Sample Description
  358. --------------------------*/
  359.  
  360. struct MusicDescription {
  361.     long                             descSize;
  362.     long                             dataFormat;                    /* 'musi' */
  363.  
  364.     long                             resvd1;
  365.     short                             resvd2;
  366.     short                             dataRefIndex;
  367.  
  368.     long                             musicFlags;
  369.     unsigned long                     headerData[1];                /* variable size! */
  370.  
  371. };
  372. typedef struct MusicDescription            MusicDescription;
  373. typedef MusicDescription *                MusicDescriptionPtr;
  374. typedef MusicDescriptionPtr *            MusicDescriptionHandle;
  375. enum {
  376.     kMusicFlagDontPlay2Soft        = 1L << 0,
  377.     kMusicFlagDontSlaveToMovie    = 1L << 1
  378. };
  379.  
  380.  
  381. enum {
  382.     dfDontDisplay                = 1 << 0,                        /* Don't display the text*/
  383.     dfDontAutoScale                = 1 << 1,                        /* Don't scale text as track bounds grows or shrinks*/
  384.     dfClipToTextBox                = 1 << 2,                        /* Clip update to the textbox*/
  385.     dfUseMovieBGColor            = 1 << 3,                        /* Set text background to movie's background color*/
  386.     dfShrinkTextBoxToFit        = 1 << 4,                        /* Compute minimum box to fit the sample*/
  387.     dfScrollIn                    = 1 << 5,                        /* Scroll text in until last of text is in view */
  388.     dfScrollOut                    = 1 << 6,                        /* Scroll text out until last of text is gone (if both set, scroll in then out)*/
  389.     dfHorizScroll                = 1 << 7,                        /* Scroll text horizontally (otherwise it's vertical)*/
  390.     dfReverseScroll                = 1 << 8,                        /* vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)*/
  391.     dfContinuousScroll            = 1 << 9,                        /* new samples cause previous samples to scroll out */
  392.     dfFlowHoriz                    = 1 << 10,                        /* horiz scroll text flows in textbox rather than extend to right */
  393.     dfContinuousKaraoke            = 1 << 11,                        /* ignore begin offset, hilite everything up to the end offset(karaoke)*/
  394.     dfDropShadow                = 1 << 12,                        /* display text with a drop shadow */
  395.     dfAntiAlias                    = 1 << 13,                        /* attempt to display text anti aliased*/
  396.     dfKeyedText                    = 1 << 14,                        /* key the text over background*/
  397.     dfInverseHilite                = 1 << 15,                        /* Use inverse hiliting rather than using hilite color*/
  398.     dfTextColorHilite            = 1 << 16                        /* changes text color in place of hiliting. */
  399. };
  400.  
  401. enum {
  402.     searchTextDontGoToFoundTime    = 1L << 16,
  403.     searchTextDontHiliteFoundText = 1L << 17,
  404.     searchTextOneTrackOnly        = 1L << 18,
  405.     searchTextEnabledTracksOnly    = 1L << 19
  406. };
  407.  
  408. /*use these with the text property routines*/
  409. enum {
  410.     kTextTextHandle                = 1,
  411.     kTextTextPtr                = 2,
  412.     kTextTEStyle                = 3,
  413.     kTextSetSelection            = 4,
  414.     kTextBackColor                = 5,
  415.     kTextForeColor                = 6,
  416.     kTextFace                    = 7,
  417.     kTextFont                    = 8,
  418.     kTextSize                    = 9,
  419.     kTextAlignment                = 10,
  420.     kTextHilite                    = 11,
  421.     kTextDropShadow                = 12,
  422.     kTextDisplayFlags            = 13,
  423.     kTextScroll                    = 14
  424. };
  425.  
  426. enum {
  427.     k3DMediaRendererEntry        = FOUR_CHAR_CODE('rend'),
  428.     k3DMediaRendererName        = FOUR_CHAR_CODE('name'),
  429.     k3DMediaRendererCode        = FOUR_CHAR_CODE('rcod')
  430. };
  431.  
  432. /* progress messages */
  433. enum {
  434.     movieProgressOpen            = 0,
  435.     movieProgressUpdatePercent    = 1,
  436.     movieProgressClose            = 2
  437. };
  438.  
  439. /* progress operations */
  440. enum {
  441.     progressOpFlatten            = 1,
  442.     progressOpInsertTrackSegment = 2,
  443.     progressOpInsertMovieSegment = 3,
  444.     progressOpPaste                = 4,
  445.     progressOpAddMovieSelection    = 5,
  446.     progressOpCopy                = 6,
  447.     progressOpCut                = 7,
  448.     progressOpLoadMovieIntoRam    = 8,
  449.     progressOpLoadTrackIntoRam    = 9,
  450.     progressOpLoadMediaIntoRam    = 10,
  451.     progressOpImportMovie        = 11,
  452.     progressOpExportMovie        = 12
  453. };
  454.  
  455. enum {
  456.     mediaQualityDraft            = 0x0000,
  457.     mediaQualityNormal            = 0x0040,
  458.     mediaQualityBetter            = 0x0080,
  459.     mediaQualityBest            = 0x00C0
  460. };
  461.  
  462. /*****
  463.     Interactive Sprites Support
  464. *****/
  465.  
  466. struct QTEventRecord {
  467.     long                             version;
  468.     OSType                             eventType;
  469.     Point                             where;
  470.     long                             flags;
  471. };
  472. typedef struct QTEventRecord            QTEventRecord;
  473. typedef QTEventRecord *                    QTEventRecordPtr;
  474.  
  475. struct QTAtomSpec {
  476.     QTAtomContainer                 container;
  477.     QTAtom                             atom;
  478. };
  479. typedef struct QTAtomSpec                QTAtomSpec;
  480. typedef QTAtomSpec *                    QTAtomSpecPtr;
  481.  
  482. struct ResolvedQTEventSpec {
  483.     QTAtomSpec                         actionAtom;
  484.     Track                             targetTrack;
  485.     long                             targetRefCon;
  486. };
  487. typedef struct ResolvedQTEventSpec        ResolvedQTEventSpec;
  488. typedef ResolvedQTEventSpec *            ResolvedQTEventSpecPtr;
  489.  
  490. /* action constants */
  491. enum {
  492.     kActionMovieSetVolume        = 1024,                            /* (short movieVolume) */
  493.     kActionMovieSetRate            = 1025,                            /* (Fixed rate) */
  494.     kActionMovieSetLoopingFlags    = 1026,                            /* (long loopingFlags) */
  495.     kActionMovieGoToTime        = 1027,                            /* (TimeValue time) */
  496.     kActionMovieGoToTimeByName    = 1028,                            /* (Str255 timeName) */
  497.     kActionMovieGoToBeginning    = 1029,                            /* no params */
  498.     kActionMovieGoToEnd            = 1030,                            /* no params */
  499.     kActionMovieStepForward        = 1031,                            /* no params */
  500.     kActionMovieStepBackward    = 1032,                            /* no params */
  501.     kActionMovieSetSelection    = 1033,                            /* (TimeValue startTime, TimeValue endTime) */
  502.     kActionMovieSetSelectionByName = 1034,                        /* (Str255 startTimeName, Str255 endTimeName) */
  503.     kActionMoviePlaySelection    = 1035,                            /* (Boolean selectionOnly) */
  504.     kActionMovieSetLanguage        = 1036,                            /* (long language) */
  505.     kActionMovieChanged            = 1037,                            /* no params */
  506.     kActionMovieRestartAtTime    = 1038,                            /* (TimeValue startTime, Fixed rate) */
  507.     kActionTrackSetVolume        = 2048,                            /* (short volume) */
  508.     kActionTrackSetBalance        = 2049,                            /* (short balance) */
  509.     kActionTrackSetEnabled        = 2050,                            /* (Boolean enabled) */
  510.     kActionTrackSetMatrix        = 2051,                            /* (MatrixRecord matrix) */
  511.     kActionTrackSetLayer        = 2052,                            /* (short layer) */
  512.     kActionTrackSetClip            = 2053,                            /* (RgnHandle clip) */
  513.     kActionTrackSetCursor        = 2054,                            /* (QTATomID cursorID) */
  514.     kActionTrackSetGraphicsMode    = 2055,                            /* (ModifierTrackGraphicsModeRecord graphicsMode) */
  515.     kActionSpriteSetMatrix        = 3072,                            /* (MatrixRecord matrix) */
  516.     kActionSpriteSetImageIndex    = 3073,                            /* (short imageIndex) */
  517.     kActionSpriteSetVisible        = 3074,                            /* (short visible) */
  518.     kActionSpriteSetLayer        = 3075,                            /* (short layer) */
  519.     kActionSpriteSetGraphicsMode = 3076,                        /* (ModifierTrackGraphicsModeRecord graphicsMode) */
  520.     kActionSpritePassMouseToCodec = 3078,                        /* no params */
  521.     kActionSpriteClickOnCodec    = 3079,                            /* Point localLoc */
  522.     kActionSpriteTranslate        = 3080,                            /* (Fixed x, Fixed y, Boolean isAbsolute) */
  523.     kActionSpriteScale            = 3081,                            /* (Fixed xScale, Fixed yScale) */
  524.     kActionSpriteRotate            = 3082,                            /* (Fixed degrees) */
  525.     kActionSpriteStretch        = 3083,                            /* (Fixed p1x, Fixed p1y, Fixed p2x, Fixed p2y, Fixed p3x, Fixed p3y, Fixed p4x, Fixed p4y) */
  526.     kActionQTVRSetPanAngle        = 4096,                            /* (float panAngle) */
  527.     kActionQTVRSetTiltAngle        = 4097,                            /* (float tiltAngle) */
  528.     kActionQTVRSetFieldOfView    = 4098,                            /* (float fieldOfView) */
  529.     kActionQTVRShowDefaultView    = 4099,                            /* no params */
  530.     kActionQTVRGoToNodeID        = 4100,                            /* (UInt32 nodeID) */
  531.     kActionMusicPlayNote        = 5120,                            /* (long sampleDescIndex, long partNumber, long delay, long pitch, long velocity, long duration) */
  532.     kActionMusicSetController    = 5121,                            /* (long sampleDescIndex, long partNumber, long delay, long controller, long value) */
  533.     kActionCase                    = 6144,                            /* [(CaseStatementActionAtoms)] */
  534.     kActionWhile                = 6145,                            /* [(WhileStatementActionAtoms)] */
  535.     kActionGoToURL                = 6146,                            /* (C string urlLink) */
  536.     kActionSendQTEventToSprite    = 6147,                            /* ([(SpriteTargetAtoms)], QTEventRecord theEvent) */
  537.     kActionDebugStr                = 6148,                            /* (Str255 theString) */
  538.     kActionPushCurrentTime        = 6149,                            /* no params */
  539.     kActionPushCurrentTimeWithLabel = 6150,                        /* (Str255 theLabel) */
  540.     kActionPopAndGotoTopTime    = 6151,                            /* no params */
  541.     kActionPopAndGotoLabeledTime = 6152,                        /* (Str255 theLabel) */
  542.     kActionStatusString            = 6153,                            /* (C string theString, long stringTypeFlags) */
  543.     kActionSendQTEventToTrackObject = 6154,                        /* ([(TrackObjectTargetAtoms)], QTEventRecord theEvent) */
  544.     kActionAddChannelSubscription = 6155,                        /* (Str255 channelName, C string channelsURL, C string channelsPictureURL) */
  545.     kActionRemoveChannelSubscription = 6156,                    /* (C string channelsURL) */
  546.     kActionOpenCustomActionHandler = 6157,                        /* (long handlerID, ComponentDescription handlerDesc) */
  547.     kActionDoScript                = 6158,                            /* (long scriptTypeFlags, CString command, CString arguments) */
  548.     kActionSpriteTrackSetVariable = 7168,                        /* (QTAtomID variableID, float value) */
  549.     kActionSpriteTrackNewSprite    = 7169,                            /* (QTAtomID spriteID, short imageIndex, MatrixRecord *matrix, short visible, short layer, ModifierTrackGraphicsModeRecord *graphicsMode, QTAtomID actionHandlingSpriteID) */
  550.     kActionSpriteTrackDisposeSprite = 7170,                        /* (QTAtomID spriteID) */
  551.     kActionSpriteTrackSetVariableToString = 7171,                /* (QTAtomID variableID, C string value) */
  552.     kActionSpriteTrackConcatVariables = 7172,                    /* (QTAtomID firstVariableID, QTAtomID secondVariableID, QTAtomID resultVariableID ) */
  553.     kActionSpriteTrackSetVariableToMovieURL = 7173,                /* (QTAtomID variableID, < optional: [(MovieTargetAtoms)] > ) */
  554.     kActionSpriteTrackSetVariableToMovieBaseURL = 7174,            /* (QTAtomID variableID, < optional: [(MovieTargetAtoms)] > ) */
  555.     kActionApplicationNumberAndString = 8192,                    /* (long aNumber, Str255 aString ) */
  556.     kActionQD3DNamedObjectTranslateTo = 9216,                    /* (Fixed x, Fixed y, Fixed z ) */
  557.     kActionQD3DNamedObjectScaleTo = 9217,                        /* (Fixed xScale, Fixed yScale, Fixed zScale ) */
  558.     kActionQD3DNamedObjectRotateTo = 9218,                        /* (Fixed xDegrees, Fixed yDegrees, Fixed zDegrees ) */
  559.     kActionFlashTrackSetPan        = 10240,                        /* (short xPercent, short yPercent ) */
  560.     kActionFlashTrackSetZoom    = 10241,                        /* (short zoomFactor ) */
  561.     kActionFlashTrackSetZoomRect = 10242,                        /* (long left, long top, long right, long bottom ) */
  562.     kActionFlashTrackGotoFrameNumber = 10243,                    /* (long frameNumber ) */
  563.     kActionFlashTrackGotoFrameLabel = 10244,                    /* (C string frameLabel ) */
  564.     kActionMovieTrackAddChildMovie = 11264,                        /* (QTAtomID childMovieID, C string childMovieURL) */
  565.     kActionMovieTrackLoadChildMovie = 11265                        /* (QTAtomID childMovieID) */
  566. };
  567.  
  568. enum {
  569.     kOperandExpression            = 1,
  570.     kOperandConstant            = 2,
  571.     kOperandSubscribedToChannel    = 3,                            /* C string channelsURL */
  572.     kOperandUniqueCustomActionHandlerID = 4,
  573.     kOperandCustomActionHandlerIDIsOpen = 5,                    /* long ID */
  574.     kOperandConnectionSpeed        = 6,
  575.     kOperandGMTDay                = 7,
  576.     kOperandGMTMonth            = 8,
  577.     kOperandGMTYear                = 9,
  578.     kOperandGMTHours            = 10,
  579.     kOperandGMTMinutes            = 11,
  580.     kOperandGMTSeconds            = 12,
  581.     kOperandLocalDay            = 13,
  582.     kOperandLocalMonth            = 14,
  583.     kOperandLocalYear            = 15,
  584.     kOperandLocalHours            = 16,
  585.     kOperandLocalMinutes        = 17,
  586.     kOperandLocalSeconds        = 18,
  587.     kOperandRegisteredForQuickTimePro = 19,
  588.     kOperandPlatformRunningOn    = 20,
  589.     kOperandQuickTimeVersion    = 21,
  590.     kOperandComponentVersion    = 22,                            /* C string type, C string subType, C string manufacturer */
  591.     kOperandOriginalHandlerRefcon = 23,
  592.     kOperandTicks                = 24,
  593.     kOperandMaxLoadedTimeInMovie = 25,
  594.     kOperandMovieVolume            = 1024,
  595.     kOperandMovieRate            = 1025,
  596.     kOperandMovieIsLooping        = 1026,
  597.     kOperandMovieLoopIsPalindrome = 1027,
  598.     kOperandMovieTime            = 1028,
  599.     kOperandTrackVolume            = 2048,
  600.     kOperandTrackBalance        = 2049,
  601.     kOperandTrackEnabled        = 2050,
  602.     kOperandTrackLayer            = 2051,
  603.     kOperandTrackWidth            = 2052,
  604.     kOperandTrackHeight            = 2053,
  605.     kOperandSpriteBoundsLeft    = 3072,
  606.     kOperandSpriteBoundsTop        = 3073,
  607.     kOperandSpriteBoundsRight    = 3074,
  608.     kOperandSpriteBoundsBottom    = 3075,
  609.     kOperandSpriteImageIndex    = 3076,
  610.     kOperandSpriteVisible        = 3077,
  611.     kOperandSpriteLayer            = 3078,
  612.     kOperandSpriteTrackVariable    = 3079,                            /* [QTAtomID variableID] */
  613.     kOperandSpriteTrackNumSprites = 3080,
  614.     kOperandSpriteTrackNumImages = 3081,
  615.     kOperandSpriteID            = 3082,
  616.     kOperandSpriteIndex            = 3083,
  617.     kOperandSpriteFirstCornerX    = 3084,
  618.     kOperandSpriteFirstCornerY    = 3085,
  619.     kOperandSpriteSecondCornerX    = 3086,
  620.     kOperandSpriteSecondCornerY    = 3087,
  621.     kOperandSpriteThirdCornerX    = 3088,
  622.     kOperandSpriteThirdCornerY    = 3089,
  623.     kOperandSpriteFourthCornerX    = 3090,
  624.     kOperandSpriteFourthCornerY    = 3091,
  625.     kOperandSpriteImageRegistrationPointX = 3092,
  626.     kOperandSpriteImageRegistrationPointY = 3093,
  627.     kOperandQTVRPanAngle        = 4096,
  628.     kOperandQTVRTiltAngle        = 4097,
  629.     kOperandQTVRFieldOfView        = 4098,
  630.     kOperandQTVRNodeID            = 4099,
  631.     kOperandMouseLocalHLoc        = 5120,                            /* [TargetAtoms aTrack] */
  632.     kOperandMouseLocalVLoc        = 5121,                            /* [TargetAtoms aTrack] */
  633.     kOperandKeyIsDown            = 5122,                            /* [short modKeys, char asciiValue] */
  634.     kOperandRandom                = 5123                            /* [short min, short max] */
  635. };
  636.  
  637. enum {
  638.     kFirstMovieAction            = kActionMovieSetVolume,
  639.     kLastMovieAction            = kActionMovieRestartAtTime,
  640.     kFirstTrackAction            = kActionTrackSetVolume,
  641.     kLastTrackAction            = kActionTrackSetGraphicsMode,
  642.     kFirstSpriteAction            = kActionSpriteSetMatrix,
  643.     kLastSpriteAction            = kActionSpriteStretch,
  644.     kFirstQTVRAction            = kActionQTVRSetPanAngle,
  645.     kLastQTVRAction                = kActionQTVRGoToNodeID,
  646.     kFirstMusicAction            = kActionMusicPlayNote,
  647.     kLastMusicAction            = kActionMusicSetController,
  648.     kFirstSystemAction            = kActionCase,
  649.     kLastSystemAction            = kActionDoScript,
  650.     kFirstSpriteTrackAction        = kActionSpriteTrackSetVariable,
  651.     kLastSpriteTrackAction        = kActionSpriteTrackSetVariableToMovieBaseURL,
  652.     kFirstApplicationAction        = kActionApplicationNumberAndString,
  653.     kLastApplicationAction        = kActionApplicationNumberAndString,
  654.     kFirstQD3DNamedObjectAction    = kActionQD3DNamedObjectTranslateTo,
  655.     kLastQD3DNamedObjectAction    = kActionQD3DNamedObjectRotateTo,
  656.     kFirstFlashTrackAction        = kActionFlashTrackSetPan,
  657.     kLastFlashTrackAction        = kActionFlashTrackGotoFrameLabel,
  658.     kFirstMovieTrackAction        = kActionMovieTrackAddChildMovie,
  659.     kLastMovieTrackAction        = kActionMovieTrackLoadChildMovie,
  660.     kFirstAction                = kFirstMovieAction,
  661.     kLastAction                    = kActionMovieTrackLoadChildMovie
  662. };
  663.  
  664.  
  665. /* target atom types*/
  666. enum {
  667.     kTargetMovie                = FOUR_CHAR_CODE('moov'),        /* no data */
  668.     kTargetMovieName            = FOUR_CHAR_CODE('mona'),        /* (PString movieName) */
  669.     kTargetMovieID                = FOUR_CHAR_CODE('moid'),        /* (long movieID) */
  670.     kTargetRootMovie            = FOUR_CHAR_CODE('moro'),        /* no data */
  671.     kTargetParentMovie            = FOUR_CHAR_CODE('mopa'),        /* no data */
  672.     kTargetChildMovieTrackName    = FOUR_CHAR_CODE('motn'),        /* (PString childMovieTrackName) */
  673.     kTargetChildMovieTrackID    = FOUR_CHAR_CODE('moti'),        /* (long childMovieTrackID) */
  674.     kTargetChildMovieTrackIndex    = FOUR_CHAR_CODE('motx'),        /* (long childMovieTrackIndex) */
  675.     kTargetChildMovieMovieName    = FOUR_CHAR_CODE('momn'),        /* (PString childMovieName) */
  676.     kTargetChildMovieMovieID    = FOUR_CHAR_CODE('momi'),        /* (long childMovieID) */
  677.     kTargetTrackName            = FOUR_CHAR_CODE('trna'),        /* (PString trackName) */
  678.     kTargetTrackID                = FOUR_CHAR_CODE('trid'),        /* (long trackID) */
  679.     kTargetTrackType            = FOUR_CHAR_CODE('trty'),        /* (OSType trackType) */
  680.     kTargetTrackIndex            = FOUR_CHAR_CODE('trin'),        /* (long trackIndex) */
  681.     kTargetSpriteName            = FOUR_CHAR_CODE('spna'),        /* (PString spriteName) */
  682.     kTargetSpriteID                = FOUR_CHAR_CODE('spid'),        /* (QTAtomID spriteID) */
  683.     kTargetSpriteIndex            = FOUR_CHAR_CODE('spin'),        /* (short spriteIndex) */
  684.     kTargetQD3DNamedObjectName    = FOUR_CHAR_CODE('nana')        /* (CString objectName) */
  685. };
  686.  
  687. /* action container atom types*/
  688. enum {
  689.     kQTEventType                = FOUR_CHAR_CODE('evnt'),
  690.     kAction                        = FOUR_CHAR_CODE('actn'),
  691.     kWhichAction                = FOUR_CHAR_CODE('whic'),
  692.     kActionParameter            = FOUR_CHAR_CODE('parm'),
  693.     kActionTarget                = FOUR_CHAR_CODE('targ'),
  694.     kActionFlags                = FOUR_CHAR_CODE('flag'),
  695.     kActionParameterMinValue    = FOUR_CHAR_CODE('minv'),
  696.     kActionParameterMaxValue    = FOUR_CHAR_CODE('maxv'),
  697.     kActionListAtomType            = FOUR_CHAR_CODE('list'),
  698.     kExpressionContainerAtomType = FOUR_CHAR_CODE('expr'),
  699.     kConditionalAtomType        = FOUR_CHAR_CODE('test'),
  700.     kOperatorAtomType            = FOUR_CHAR_CODE('oper'),
  701.     kOperandAtomType            = FOUR_CHAR_CODE('oprn'),
  702.     kCommentAtomType            = FOUR_CHAR_CODE('why '),
  703.     kCustomActionHandler        = FOUR_CHAR_CODE('cust'),
  704.     kCustomHandlerID            = FOUR_CHAR_CODE('id  '),
  705.     kCustomHandlerDesc            = FOUR_CHAR_CODE('desc'),
  706.     kQTEventRecordAtomType        = FOUR_CHAR_CODE('erec')
  707. };
  708.  
  709. /* QTEvent types */
  710. enum {
  711.     kQTEventMouseClick            = FOUR_CHAR_CODE('clik'),
  712.     kQTEventMouseClickEnd        = FOUR_CHAR_CODE('cend'),
  713.     kQTEventMouseClickEndTriggerButton = FOUR_CHAR_CODE('trig'),
  714.     kQTEventMouseEnter            = FOUR_CHAR_CODE('entr'),
  715.     kQTEventMouseExit            = FOUR_CHAR_CODE('exit'),
  716.     kQTEventMouseMoved            = FOUR_CHAR_CODE('move'),
  717.     kQTEventFrameLoaded            = FOUR_CHAR_CODE('fram'),
  718.     kQTEventIdle                = FOUR_CHAR_CODE('idle'),
  719.     kQTEventKey                    = FOUR_CHAR_CODE('key '),        /* qtevent.where.h = key, qtevent.where.v = modifiers, qtEvent.flags = scanCode */
  720.     kQTEventMovieLoaded            = FOUR_CHAR_CODE('load'),
  721.     kQTEventRequestToModifyMovie = FOUR_CHAR_CODE('reqm')
  722. };
  723.  
  724. /* flags for the kActionFlags atom */
  725. enum {
  726.     kActionFlagActionIsDelta    = 1L << 1,
  727.     kActionFlagParameterWrapsAround = 1L << 2,
  728.     kActionFlagActionIsToggle    = 1L << 3
  729. };
  730.  
  731. /* flags for stringTypeFlags field of the QTStatusStringRecord */
  732. enum {
  733.     kStatusStringIsURLLink        = 1L << 1,
  734.     kStatusStringIsStreamingStatus = 1L << 2,
  735.     kStatusHasCodeNumber        = 1L << 3,                        /* high 16 bits of stringTypeFlags is error code number*/
  736.     kStatusIsError                = 1L << 4
  737. };
  738.  
  739. /* flags for scriptTypeFlags field of the QTDoScriptRecord*/
  740. enum {
  741.     kScriptIsUnknownType        = 1L << 0,
  742.     kScriptIsJavaScript            = 1L << 1,
  743.     kScriptIsLingoEvent            = 1L << 2,
  744.     kScriptIsVBEvent            = 1L << 3,
  745.     kScriptIsProjectorCommand    = 1L << 4
  746. };
  747.  
  748. /* flags for CheckQuickTimeRegistration routine*/
  749. enum {
  750.     kQTRegistrationDialogTimeOutFlag = 1 << 0,
  751.     kQTRegistrationDialogShowDialog = 1 << 1,
  752.     kQTRegistrationDialogForceDialog = 1 << 2
  753. };
  754.  
  755. /* constants for kOperatorAtomType IDs (operator types)*/
  756. enum {
  757.     kOperatorAdd                = FOUR_CHAR_CODE('add '),
  758.     kOperatorSubtract            = FOUR_CHAR_CODE('sub '),
  759.     kOperatorMultiply            = FOUR_CHAR_CODE('mult'),
  760.     kOperatorDivide                = FOUR_CHAR_CODE('div '),
  761.     kOperatorOr                    = FOUR_CHAR_CODE('or  '),
  762.     kOperatorAnd                = FOUR_CHAR_CODE('and '),
  763.     kOperatorNot                = FOUR_CHAR_CODE('not '),
  764.     kOperatorLessThan            = FOUR_CHAR_CODE('<   '),
  765.     kOperatorLessThanEqualTo    = FOUR_CHAR_CODE('<=  '),
  766.     kOperatorEqualTo            = FOUR_CHAR_CODE('=   '),
  767.     kOperatorNotEqualTo            = FOUR_CHAR_CODE('!=  '),
  768.     kOperatorGreaterThan        = FOUR_CHAR_CODE('>   '),
  769.     kOperatorGreaterThanEqualTo    = FOUR_CHAR_CODE('>=  '),
  770.     kOperatorModulo                = FOUR_CHAR_CODE('mod '),
  771.     kOperatorIntegerDivide        = FOUR_CHAR_CODE('idiv'),
  772.     kOperatorAbsoluteValue        = FOUR_CHAR_CODE('abs '),
  773.     kOperatorNegate                = FOUR_CHAR_CODE('neg ')
  774. };
  775.  
  776. /* constants for kOperandPlatformRunningOn*/
  777. enum {
  778.     kPlatformMacintosh            = 1,
  779.     kPlatformWindows            = 2
  780. };
  781.  
  782. /* constants for MediaPropertiesAtom*/
  783. enum {
  784.     kMediaPropertyNonLinearAtomType = FOUR_CHAR_CODE('nonl'),
  785.     kMediaPropertyHasActions    = 105
  786. };
  787.  
  788. typedef CALLBACK_API( OSErr , MovieRgnCoverProcPtr )(Movie theMovie, RgnHandle changedRgn, long refcon);
  789. typedef CALLBACK_API( OSErr , MovieProgressProcPtr )(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
  790. typedef CALLBACK_API( OSErr , MovieDrawingCompleteProcPtr )(Movie theMovie, long refCon);
  791. typedef CALLBACK_API( OSErr , TrackTransferProcPtr )(Track t, long refCon);
  792. typedef CALLBACK_API( OSErr , GetMovieProcPtr )(long offset, long size, void *dataPtr, void *refCon);
  793. typedef CALLBACK_API( Boolean , MoviePreviewCallOutProcPtr )(long refcon);
  794. typedef CALLBACK_API( OSErr , TextMediaProcPtr )(Handle theText, Movie theMovie, short *displayFlag, long refcon);
  795. typedef CALLBACK_API( OSErr , ActionsProcPtr )(void *refcon, Track targetTrack, long targetRefCon, QTEventRecordPtr theEvent);
  796. typedef CALLBACK_API( OSErr , DoMCActionProcPtr )(void *refcon, short action, void *params, Boolean *handled);
  797. typedef CALLBACK_API( OSErr , MovieExecuteWiredActionsProcPtr )(Movie theMovie, void *refcon, long flags, QTAtomContainer wiredActions);
  798. typedef CALLBACK_API( void , MoviePrePrerollCompleteProcPtr )(Movie theMovie, OSErr prerollErr, void *refcon);
  799. typedef CALLBACK_API( void , MoviesErrorProcPtr )(OSErr theErr, long refcon);
  800. typedef STACK_UPP_TYPE(MovieRgnCoverProcPtr)                     MovieRgnCoverUPP;
  801. typedef STACK_UPP_TYPE(MovieProgressProcPtr)                     MovieProgressUPP;
  802. typedef STACK_UPP_TYPE(MovieDrawingCompleteProcPtr)             MovieDrawingCompleteUPP;
  803. typedef STACK_UPP_TYPE(TrackTransferProcPtr)                     TrackTransferUPP;
  804. typedef STACK_UPP_TYPE(GetMovieProcPtr)                         GetMovieUPP;
  805. typedef STACK_UPP_TYPE(MoviePreviewCallOutProcPtr)                 MoviePreviewCallOutUPP;
  806. typedef STACK_UPP_TYPE(TextMediaProcPtr)                         TextMediaUPP;
  807. typedef STACK_UPP_TYPE(ActionsProcPtr)                             ActionsUPP;
  808. typedef STACK_UPP_TYPE(DoMCActionProcPtr)                         DoMCActionUPP;
  809. typedef STACK_UPP_TYPE(MovieExecuteWiredActionsProcPtr)         MovieExecuteWiredActionsUPP;
  810. typedef STACK_UPP_TYPE(MoviePrePrerollCompleteProcPtr)             MoviePrePrerollCompleteUPP;
  811. typedef STACK_UPP_TYPE(MoviesErrorProcPtr)                         MoviesErrorUPP;
  812.  
  813. typedef ComponentInstance                 MediaHandler;
  814. typedef ComponentInstance                 DataHandler;
  815. typedef Component                         MediaHandlerComponent;
  816. typedef Component                         DataHandlerComponent;
  817. typedef ComponentResult                 HandlerError;
  818. /* TimeBase equates */
  819. typedef long                             TimeValue;
  820. typedef long                             TimeScale;
  821. typedef wide                             CompTimeValue;
  822. typedef SInt64                             TimeValue64;
  823. enum {
  824.     loopTimeBase                = 1,
  825.     palindromeLoopTimeBase        = 2,
  826.     maintainTimeBaseZero        = 4
  827. };
  828.  
  829. typedef unsigned long                     TimeBaseFlags;
  830.  
  831. struct TimeBaseRecord {
  832.     long                             data[1];
  833. };
  834. typedef struct TimeBaseRecord            TimeBaseRecord;
  835.  
  836. typedef TimeBaseRecord *                TimeBase;
  837.  
  838. struct CallBackRecord {
  839.     long                             data[1];
  840. };
  841. typedef struct CallBackRecord            CallBackRecord;
  842.  
  843. typedef CallBackRecord *                QTCallBack;
  844.  
  845. struct TimeRecord {
  846.     CompTimeValue                     value;                        /* units */
  847.     TimeScale                         scale;                        /* units per second */
  848.     TimeBase                         base;
  849. };
  850. typedef struct TimeRecord                TimeRecord;
  851. /* CallBack equates */
  852. enum {
  853.     triggerTimeFwd                = 0x0001,                        /* when curTime exceeds triggerTime going forward */
  854.     triggerTimeBwd                = 0x0002,                        /* when curTime exceeds triggerTime going backwards */
  855.     triggerTimeEither            = 0x0003,                        /* when curTime exceeds triggerTime going either direction */
  856.     triggerRateLT                = 0x0004,                        /* when rate changes to less than trigger value */
  857.     triggerRateGT                = 0x0008,                        /* when rate changes to greater than trigger value */
  858.     triggerRateEqual            = 0x0010,                        /* when rate changes to equal trigger value */
  859.     triggerRateLTE                = triggerRateLT | triggerRateEqual,
  860.     triggerRateGTE                = triggerRateGT | triggerRateEqual,
  861.     triggerRateNotEqual            = triggerRateGT | triggerRateEqual | triggerRateLT,
  862.     triggerRateChange            = 0,
  863.     triggerAtStart                = 0x0001,
  864.     triggerAtStop                = 0x0002
  865. };
  866.  
  867.  
  868. typedef unsigned short                     QTCallBackFlags;
  869. enum {
  870.     timeBaseBeforeStartTime        = 1,
  871.     timeBaseAfterStopTime        = 2
  872. };
  873.  
  874. typedef unsigned long                     TimeBaseStatus;
  875. enum {
  876.     callBackAtTime                = 1,
  877.     callBackAtRate                = 2,
  878.     callBackAtTimeJump            = 3,
  879.     callBackAtExtremes            = 4,
  880.     callBackAtTimeBaseDisposed    = 5,
  881.     callBackAtInterrupt            = 0x8000,
  882.     callBackAtDeferredTask        = 0x4000
  883. };
  884.  
  885. typedef unsigned short                     QTCallBackType;
  886. typedef CALLBACK_API( void , QTCallBackProcPtr )(QTCallBack cb, long refCon);
  887. typedef STACK_UPP_TYPE(QTCallBackProcPtr)                         QTCallBackUPP;
  888. enum {
  889.     qtcbNeedsRateChanges        = 1,                            /* wants to know about rate changes */
  890.     qtcbNeedsTimeChanges        = 2,                            /* wants to know about time changes */
  891.     qtcbNeedsStartStopChanges    = 4                                /* wants to know when TimeBase start/stop is changed*/
  892. };
  893.  
  894.  
  895. struct QTCallBackHeader {
  896.     long                             callBackFlags;
  897.     long                             reserved1;
  898.     SInt8                             qtPrivate[40];
  899. };
  900. typedef struct QTCallBackHeader            QTCallBackHeader;
  901. typedef CALLBACK_API( void , QTSyncTaskProcPtr )(void *task);
  902. typedef STACK_UPP_TYPE(QTSyncTaskProcPtr)                         QTSyncTaskUPP;
  903.  
  904. struct QTSyncTaskRecord {
  905.     void *                            qLink;
  906.     QTSyncTaskUPP                     proc;
  907. };
  908. typedef struct QTSyncTaskRecord            QTSyncTaskRecord;
  909.  
  910. typedef QTSyncTaskRecord *                QTSyncTaskPtr;
  911. enum {
  912.     keepInRam                    = 1 << 0,                        /* load and make non-purgable*/
  913.     unkeepInRam                    = 1 << 1,                        /* mark as purgable*/
  914.     flushFromRam                = 1 << 2,                        /* empty those handles*/
  915.     loadForwardTrackEdits        = 1 << 3,                        /*    load track edits into ram for playing forward*/
  916.     loadBackwardTrackEdits        = 1 << 4                        /*    load track edits into ram for playing in reverse*/
  917. };
  918.  
  919. enum {
  920.     newMovieActive                = 1 << 0,
  921.     newMovieDontResolveDataRefs    = 1 << 1,
  922.     newMovieDontAskUnresolvedDataRefs = 1 << 2,
  923.     newMovieDontAutoAlternates    = 1 << 3,
  924.     newMovieDontUpdateForeBackPointers = 1 << 4,
  925.     newMovieDontAutoUpdateClock    = 1 << 5,
  926.     newMovieAsyncOK                = 1 << 8,
  927.     newMovieIdleImportOK        = 1 << 10
  928. };
  929.  
  930. /* track usage bits */
  931. enum {
  932.     trackUsageInMovie            = 1 << 1,
  933.     trackUsageInPreview            = 1 << 2,
  934.     trackUsageInPoster            = 1 << 3
  935. };
  936.  
  937. /* Add/GetMediaSample flags */
  938. enum {
  939.     mediaSampleNotSync            = 1 << 0,                        /* sample is not a sync sample (eg. is frame differenced */
  940.     mediaSampleShadowSync        = 1 << 1                        /* sample is a shadow sync */
  941. };
  942.  
  943. enum {
  944.     pasteInParallel                = 1 << 0,
  945.     showUserSettingsDialog        = 1 << 1,
  946.     movieToFileOnlyExport        = 1 << 2,
  947.     movieFileSpecValid            = 1 << 3
  948. };
  949.  
  950. enum {
  951.     nextTimeMediaSample            = 1 << 0,
  952.     nextTimeMediaEdit            = 1 << 1,
  953.     nextTimeTrackEdit            = 1 << 2,
  954.     nextTimeSyncSample            = 1 << 3,
  955.     nextTimeStep                = 1 << 4,
  956.     nextTimeEdgeOK                = 1 << 14,
  957.     nextTimeIgnoreActiveSegment    = 1 << 15
  958. };
  959.  
  960. typedef unsigned short                     nextTimeFlagsEnum;
  961. enum {
  962.     createMovieFileDeleteCurFile = 1L << 31,
  963.     createMovieFileDontCreateMovie = 1L << 30,
  964.     createMovieFileDontOpenFile    = 1L << 29,
  965.     createMovieFileDontCreateResFile = 1L << 28
  966. };
  967.  
  968. typedef unsigned long                     createMovieFileFlagsEnum;
  969. enum {
  970.     flattenAddMovieToDataFork    = 1L << 0,
  971.     flattenActiveTracksOnly        = 1L << 2,
  972.     flattenDontInterleaveFlatten = 1L << 3,
  973.     flattenFSSpecPtrIsDataRefRecordPtr = 1L << 4,
  974.     flattenCompressMovieResource = 1L << 5,
  975.     flattenForceMovieResourceBeforeMovieData = 1L << 6
  976. };
  977.  
  978. typedef unsigned long                     movieFlattenFlagsEnum;
  979. enum {
  980.     movieInDataForkResID        = -1                            /* magic res ID */
  981. };
  982.  
  983. enum {
  984.     mcTopLeftMovie                = 1 << 0,                        /* usually centered */
  985.     mcScaleMovieToFit            = 1 << 1,                        /* usually only scales down */
  986.     mcWithBadge                    = 1 << 2,                        /* give me a badge */
  987.     mcNotVisible                = 1 << 3,                        /* don't show controller */
  988.     mcWithFrame                    = 1 << 4                        /* gimme a frame */
  989. };
  990.  
  991. enum {
  992.     movieScrapDontZeroScrap        = 1 << 0,
  993.     movieScrapOnlyPutMovie        = 1 << 1
  994. };
  995.  
  996. enum {
  997.     dataRefSelfReference        = 1 << 0,
  998.     dataRefWasNotResolved        = 1 << 1
  999. };
  1000.  
  1001. typedef unsigned long                     dataRefAttributesFlags;
  1002. enum {
  1003.     kMovieAnchorDataRefIsDefault = 1 << 0                        /* data ref returned is movie default data ref */
  1004. };
  1005.  
  1006. enum {
  1007.     hintsScrubMode                = 1 << 0,                        /* mask == && (if flags == scrub on, flags != scrub off) */
  1008.     hintsLoop                    = 1 << 1,
  1009.     hintsDontPurge                = 1 << 2,
  1010.     hintsUseScreenBuffer        = 1 << 5,
  1011.     hintsAllowInterlace            = 1 << 6,
  1012.     hintsUseSoundInterp            = 1 << 7,
  1013.     hintsHighQuality            = 1 << 8,                        /* slooooow */
  1014.     hintsPalindrome                = 1 << 9,
  1015.     hintsInactive                = 1 << 11,
  1016.     hintsOffscreen                = 1 << 12,
  1017.     hintsDontDraw                = 1 << 13,
  1018.     hintsAllowBlacklining        = 1 << 14,
  1019.     hintsDontUseVideoOverlaySurface = 1 << 16,
  1020.     hintsIgnoreBandwidthRestrictions = 1 << 17,
  1021.     hintsPlayingEveryFrame        = 1 << 18,
  1022.     hintsAllowDynamicResize        = 1 << 19,
  1023.     hintsSingleField            = 1 << 20,
  1024.     hintsNoRenderingTimeOut        = 1 << 21
  1025. };
  1026.  
  1027. typedef unsigned long                     playHintsEnum;
  1028. enum {
  1029.     mediaHandlerFlagBaseClient    = 1
  1030. };
  1031.  
  1032. typedef unsigned long                     mediaHandlerFlagsEnum;
  1033. enum {
  1034.     movieTrackMediaType            = 1 << 0,
  1035.     movieTrackCharacteristic    = 1 << 1,
  1036.     movieTrackEnabledOnly        = 1 << 2
  1037. };
  1038.  
  1039.  
  1040. struct SampleReferenceRecord {
  1041.     long                             dataOffset;
  1042.     long                             dataSize;
  1043.     TimeValue                         durationPerSample;
  1044.     long                             numberOfSamples;
  1045.     short                             sampleFlags;
  1046. };
  1047. typedef struct SampleReferenceRecord    SampleReferenceRecord;
  1048.  
  1049. typedef SampleReferenceRecord *            SampleReferencePtr;
  1050.  
  1051. struct SampleReference64Record {
  1052.     wide                             dataOffset;
  1053.     unsigned long                     dataSize;
  1054.     TimeValue                         durationPerSample;
  1055.     unsigned long                     numberOfSamples;
  1056.     short                             sampleFlags;
  1057. };
  1058. typedef struct SampleReference64Record    SampleReference64Record;
  1059.  
  1060. typedef SampleReference64Record *        SampleReference64Ptr;
  1061.  
  1062. /*************************
  1063. * Initialization Routines 
  1064. **************************/
  1065. EXTERN_API( void )
  1066. CheckQuickTimeRegistration        (void *                    registrationKey,
  1067.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02DA, 0xAAAA);
  1068.  
  1069. EXTERN_API( OSErr )
  1070. EnterMovies                        (void)                                                        TWOWORDINLINE(0x7001, 0xAAAA);
  1071.  
  1072. EXTERN_API( void )
  1073. ExitMovies                        (void)                                                        TWOWORDINLINE(0x7002, 0xAAAA);
  1074.  
  1075. /*************************
  1076. * Error Routines 
  1077. **************************/
  1078.  
  1079. EXTERN_API( OSErr )
  1080. GetMoviesError                    (void)                                                        TWOWORDINLINE(0x7003, 0xAAAA);
  1081.  
  1082. EXTERN_API( void )
  1083. ClearMoviesStickyError            (void)                                                        THREEWORDINLINE(0x303C, 0x00DE, 0xAAAA);
  1084.  
  1085. EXTERN_API( OSErr )
  1086. GetMoviesStickyError            (void)                                                        TWOWORDINLINE(0x7004, 0xAAAA);
  1087.  
  1088. EXTERN_API( void )
  1089. SetMoviesErrorProc                (MoviesErrorUPP         errProc,
  1090.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00EF, 0xAAAA);
  1091.  
  1092.  
  1093. /*************************
  1094. * Idle Routines 
  1095. **************************/
  1096. EXTERN_API( void )
  1097. MoviesTask                        (Movie                     theMovie,
  1098.                                  long                     maxMilliSecToUse)                    TWOWORDINLINE(0x7005, 0xAAAA);
  1099.  
  1100. EXTERN_API( OSErr )
  1101. PrerollMovie                    (Movie                     theMovie,
  1102.                                  TimeValue                 time,
  1103.                                  Fixed                     Rate)                                TWOWORDINLINE(0x7006, 0xAAAA);
  1104.  
  1105. EXTERN_API( OSErr )
  1106. PrePrerollMovie                    (Movie                     m,
  1107.                                  TimeValue                 time,
  1108.                                  Fixed                     rate,
  1109.                                  MoviePrePrerollCompleteUPP  proc,
  1110.                                  void *                    refcon)                                THREEWORDINLINE(0x303C, 0x02F7, 0xAAAA);
  1111.  
  1112. EXTERN_API( void )
  1113. AbortPrePrerollMovie            (Movie                     m,
  1114.                                  OSErr                     err)                                THREEWORDINLINE(0x303C, 0x02F8, 0xAAAA);
  1115.  
  1116. EXTERN_API( OSErr )
  1117. LoadMovieIntoRam                (Movie                     theMovie,
  1118.                                  TimeValue                 time,
  1119.                                  TimeValue                 duration,
  1120.                                  long                     flags)                                TWOWORDINLINE(0x7007, 0xAAAA);
  1121.  
  1122. EXTERN_API( OSErr )
  1123. LoadTrackIntoRam                (Track                     theTrack,
  1124.                                  TimeValue                 time,
  1125.                                  TimeValue                 duration,
  1126.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x016E, 0xAAAA);
  1127.  
  1128. EXTERN_API( OSErr )
  1129. LoadMediaIntoRam                (Media                     theMedia,
  1130.                                  TimeValue                 time,
  1131.                                  TimeValue                 duration,
  1132.                                  long                     flags)                                TWOWORDINLINE(0x7008, 0xAAAA);
  1133.  
  1134. EXTERN_API( void )
  1135. SetMovieActive                    (Movie                     theMovie,
  1136.                                  Boolean                 active)                                TWOWORDINLINE(0x7009, 0xAAAA);
  1137.  
  1138. EXTERN_API( Boolean )
  1139. GetMovieActive                    (Movie                     theMovie)                            TWOWORDINLINE(0x700A, 0xAAAA);
  1140.  
  1141. /*************************
  1142. * calls for playing movies, previews, posters
  1143. **************************/
  1144. EXTERN_API( void )
  1145. StartMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700B, 0xAAAA);
  1146.  
  1147. EXTERN_API( void )
  1148. StopMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700C, 0xAAAA);
  1149.  
  1150. EXTERN_API( void )
  1151. GoToBeginningOfMovie            (Movie                     theMovie)                            TWOWORDINLINE(0x700D, 0xAAAA);
  1152.  
  1153. EXTERN_API( void )
  1154. GoToEndOfMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x700E, 0xAAAA);
  1155.  
  1156. EXTERN_API( Boolean )
  1157. IsMovieDone                        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00DD, 0xAAAA);
  1158.  
  1159. EXTERN_API( Boolean )
  1160. GetMoviePreviewMode                (Movie                     theMovie)                            TWOWORDINLINE(0x700F, 0xAAAA);
  1161.  
  1162. EXTERN_API( void )
  1163. SetMoviePreviewMode                (Movie                     theMovie,
  1164.                                  Boolean                 usePreview)                            TWOWORDINLINE(0x7010, 0xAAAA);
  1165.  
  1166. EXTERN_API( void )
  1167. ShowMoviePoster                    (Movie                     theMovie)                            TWOWORDINLINE(0x7011, 0xAAAA);
  1168.  
  1169. EXTERN_API( void )
  1170. PlayMoviePreview                (Movie                     theMovie,
  1171.                                  MoviePreviewCallOutUPP  callOutProc,
  1172.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00F2, 0xAAAA);
  1173.  
  1174. /*************************
  1175. * calls for controlling movies & tracks which are playing
  1176. **************************/
  1177. EXTERN_API( TimeBase )
  1178. GetMovieTimeBase                (Movie                     theMovie)                            TWOWORDINLINE(0x7012, 0xAAAA);
  1179.  
  1180. EXTERN_API( void )
  1181. SetMovieMasterTimeBase            (Movie                     theMovie,
  1182.                                  TimeBase                 tb,
  1183.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0167, 0xAAAA);
  1184.  
  1185. EXTERN_API( void )
  1186. SetMovieMasterClock                (Movie                     theMovie,
  1187.                                  Component                 clockMeister,
  1188.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0168, 0xAAAA);
  1189.  
  1190. EXTERN_API( void )
  1191. GetMovieGWorld                    (Movie                     theMovie,
  1192.                                  CGrafPtr *                port,
  1193.                                  GDHandle *                gdh)                                TWOWORDINLINE(0x7015, 0xAAAA);
  1194.  
  1195. EXTERN_API( void )
  1196. SetMovieGWorld                    (Movie                     theMovie,
  1197.                                  CGrafPtr                 port,
  1198.                                  GDHandle                 gdh)                                TWOWORDINLINE(0x7016, 0xAAAA);
  1199.  
  1200. enum {
  1201.     movieDrawingCallWhenChanged    = 0,
  1202.     movieDrawingCallAlways        = 1
  1203. };
  1204.  
  1205. EXTERN_API( void )
  1206. SetMovieDrawingCompleteProc        (Movie                     theMovie,
  1207.                                  long                     flags,
  1208.                                  MovieDrawingCompleteUPP  proc,
  1209.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01DE, 0xAAAA);
  1210.  
  1211.  
  1212. EXTERN_API( void )
  1213. GetMovieNaturalBoundsRect        (Movie                     theMovie,
  1214.                                  Rect *                    naturalBounds)                        THREEWORDINLINE(0x303C, 0x022C, 0xAAAA);
  1215.  
  1216. EXTERN_API( Track )
  1217. GetNextTrackForCompositing        (Movie                     theMovie,
  1218.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FA, 0xAAAA);
  1219.  
  1220. EXTERN_API( Track )
  1221. GetPrevTrackForCompositing        (Movie                     theMovie,
  1222.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FB, 0xAAAA);
  1223.  
  1224.  
  1225. EXTERN_API( void )
  1226. SetTrackGWorld                    (Track                     theTrack,
  1227.                                  CGrafPtr                 port,
  1228.                                  GDHandle                 gdh,
  1229.                                  TrackTransferUPP         proc,
  1230.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x009D, 0xAAAA);
  1231.  
  1232. EXTERN_API( PicHandle )
  1233. GetMoviePict                    (Movie                     theMovie,
  1234.                                  TimeValue                 time)                                TWOWORDINLINE(0x701D, 0xAAAA);
  1235.  
  1236. EXTERN_API( PicHandle )
  1237. GetTrackPict                    (Track                     theTrack,
  1238.                                  TimeValue                 time)                                TWOWORDINLINE(0x701E, 0xAAAA);
  1239.  
  1240. EXTERN_API( PicHandle )
  1241. GetMoviePosterPict                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F7, 0xAAAA);
  1242.  
  1243. /* called between Begin & EndUpdate */
  1244. EXTERN_API( OSErr )
  1245. UpdateMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x701F, 0xAAAA);
  1246.  
  1247. EXTERN_API( OSErr )
  1248. InvalidateMovieRegion            (Movie                     theMovie,
  1249.                                  RgnHandle                 invalidRgn)                            THREEWORDINLINE(0x303C, 0x022A, 0xAAAA);
  1250.  
  1251. /**** spatial movie routines ****/
  1252. EXTERN_API( void )
  1253. GetMovieBox                        (Movie                     theMovie,
  1254.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x00F9, 0xAAAA);
  1255.  
  1256. EXTERN_API( void )
  1257. SetMovieBox                        (Movie                     theMovie,
  1258.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x00FA, 0xAAAA);
  1259.  
  1260. /** movie display clip */
  1261. EXTERN_API( RgnHandle )
  1262. GetMovieDisplayClipRgn            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FC, 0xAAAA);
  1263.  
  1264. EXTERN_API( void )
  1265. SetMovieDisplayClipRgn            (Movie                     theMovie,
  1266.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x00FD, 0xAAAA);
  1267.  
  1268. /** movie src clip */
  1269. EXTERN_API( RgnHandle )
  1270. GetMovieClipRgn                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0100, 0xAAAA);
  1271.  
  1272. EXTERN_API( void )
  1273. SetMovieClipRgn                    (Movie                     theMovie,
  1274.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0101, 0xAAAA);
  1275.  
  1276. /** track src clip */
  1277. EXTERN_API( RgnHandle )
  1278. GetTrackClipRgn                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0102, 0xAAAA);
  1279.  
  1280. EXTERN_API( void )
  1281. SetTrackClipRgn                    (Track                     theTrack,
  1282.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0103, 0xAAAA);
  1283.  
  1284. /** bounds in display space (not clipped by display clip) */
  1285. EXTERN_API( RgnHandle )
  1286. GetMovieDisplayBoundsRgn        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FB, 0xAAAA);
  1287.  
  1288. EXTERN_API( RgnHandle )
  1289. GetTrackDisplayBoundsRgn        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0112, 0xAAAA);
  1290.  
  1291. /** bounds in movie space */
  1292. EXTERN_API( RgnHandle )
  1293. GetMovieBoundsRgn                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FE, 0xAAAA);
  1294.  
  1295. EXTERN_API( RgnHandle )
  1296. GetTrackMovieBoundsRgn            (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00FF, 0xAAAA);
  1297.  
  1298. /** bounds in track space */
  1299. EXTERN_API( RgnHandle )
  1300. GetTrackBoundsRgn                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0111, 0xAAAA);
  1301.  
  1302. /** mattes - always in track space */
  1303. EXTERN_API( PixMapHandle )
  1304. GetTrackMatte                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0115, 0xAAAA);
  1305.  
  1306. EXTERN_API( void )
  1307. SetTrackMatte                    (Track                     theTrack,
  1308.                                  PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x0116, 0xAAAA);
  1309.  
  1310. EXTERN_API( void )
  1311. DisposeMatte                    (PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x014A, 0xAAAA);
  1312.  
  1313. /*************************
  1314. * calls for getting/saving movies
  1315. **************************/
  1316. EXTERN_API( Movie )
  1317. NewMovie                        (long                     flags)                                THREEWORDINLINE(0x303C, 0x0187, 0xAAAA);
  1318.  
  1319. EXTERN_API( OSErr )
  1320. PutMovieIntoHandle                (Movie                     theMovie,
  1321.                                  Handle                 publicMovie)                        TWOWORDINLINE(0x7022, 0xAAAA);
  1322.  
  1323. EXTERN_API( OSErr )
  1324. PutMovieIntoDataFork            (Movie                     theMovie,
  1325.                                  short                     fRefNum,
  1326.                                  long                     offset,
  1327.                                  long                     maxSize)                            THREEWORDINLINE(0x303C, 0x01B4, 0xAAAA);
  1328.  
  1329. EXTERN_API( OSErr )
  1330. PutMovieIntoDataFork64            (Movie                     theMovie,
  1331.                                  long                     fRefNum,
  1332.                                  const wide *            offset,
  1333.                                  unsigned long             maxSize)                            THREEWORDINLINE(0x303C, 0x02EA, 0xAAAA);
  1334.  
  1335. EXTERN_API( void )
  1336. DisposeMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x7023, 0xAAAA);
  1337.  
  1338. /*************************
  1339. * Movie State Routines
  1340. **************************/
  1341. EXTERN_API( unsigned long )
  1342. GetMovieCreationTime            (Movie                     theMovie)                            TWOWORDINLINE(0x7026, 0xAAAA);
  1343.  
  1344. EXTERN_API( unsigned long )
  1345. GetMovieModificationTime        (Movie                     theMovie)                            TWOWORDINLINE(0x7027, 0xAAAA);
  1346.  
  1347. EXTERN_API( TimeScale )
  1348. GetMovieTimeScale                (Movie                     theMovie)                            TWOWORDINLINE(0x7029, 0xAAAA);
  1349.  
  1350. EXTERN_API( void )
  1351. SetMovieTimeScale                (Movie                     theMovie,
  1352.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x702A, 0xAAAA);
  1353.  
  1354. EXTERN_API( TimeValue )
  1355. GetMovieDuration                (Movie                     theMovie)                            TWOWORDINLINE(0x702B, 0xAAAA);
  1356.  
  1357. EXTERN_API( Fixed )
  1358. GetMovieRate                    (Movie                     theMovie)                            TWOWORDINLINE(0x702C, 0xAAAA);
  1359.  
  1360. EXTERN_API( void )
  1361. SetMovieRate                    (Movie                     theMovie,
  1362.                                  Fixed                     rate)                                TWOWORDINLINE(0x702D, 0xAAAA);
  1363.  
  1364. EXTERN_API( Fixed )
  1365. GetMoviePreferredRate            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F3, 0xAAAA);
  1366.  
  1367. EXTERN_API( void )
  1368. SetMoviePreferredRate            (Movie                     theMovie,
  1369.                                  Fixed                     rate)                                THREEWORDINLINE(0x303C, 0x00F4, 0xAAAA);
  1370.  
  1371. EXTERN_API( short )
  1372. GetMoviePreferredVolume            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F5, 0xAAAA);
  1373.  
  1374. EXTERN_API( void )
  1375. SetMoviePreferredVolume            (Movie                     theMovie,
  1376.                                  short                     volume)                                THREEWORDINLINE(0x303C, 0x00F6, 0xAAAA);
  1377.  
  1378. EXTERN_API( short )
  1379. GetMovieVolume                    (Movie                     theMovie)                            TWOWORDINLINE(0x702E, 0xAAAA);
  1380.  
  1381. EXTERN_API( void )
  1382. SetMovieVolume                    (Movie                     theMovie,
  1383.                                  short                     volume)                                TWOWORDINLINE(0x702F, 0xAAAA);
  1384.  
  1385. EXTERN_API( void )
  1386. GetMovieMatrix                    (Movie                     theMovie,
  1387.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7031, 0xAAAA);
  1388.  
  1389. EXTERN_API( void )
  1390. SetMovieMatrix                    (Movie                     theMovie,
  1391.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7032, 0xAAAA);
  1392.  
  1393. EXTERN_API( void )
  1394. GetMoviePreviewTime                (Movie                     theMovie,
  1395.                                  TimeValue *            previewTime,
  1396.                                  TimeValue *            previewDuration)                    TWOWORDINLINE(0x7033, 0xAAAA);
  1397.  
  1398. EXTERN_API( void )
  1399. SetMoviePreviewTime                (Movie                     theMovie,
  1400.                                  TimeValue                 previewTime,
  1401.                                  TimeValue                 previewDuration)                    TWOWORDINLINE(0x7034, 0xAAAA);
  1402.  
  1403. EXTERN_API( TimeValue )
  1404. GetMoviePosterTime                (Movie                     theMovie)                            TWOWORDINLINE(0x7035, 0xAAAA);
  1405.  
  1406. EXTERN_API( void )
  1407. SetMoviePosterTime                (Movie                     theMovie,
  1408.                                  TimeValue                 posterTime)                            TWOWORDINLINE(0x7036, 0xAAAA);
  1409.  
  1410. EXTERN_API( void )
  1411. GetMovieSelection                (Movie                     theMovie,
  1412.                                  TimeValue *            selectionTime,
  1413.                                  TimeValue *            selectionDuration)                    TWOWORDINLINE(0x7037, 0xAAAA);
  1414.  
  1415. EXTERN_API( void )
  1416. SetMovieSelection                (Movie                     theMovie,
  1417.                                  TimeValue                 selectionTime,
  1418.                                  TimeValue                 selectionDuration)                    TWOWORDINLINE(0x7038, 0xAAAA);
  1419.  
  1420. EXTERN_API( void )
  1421. SetMovieActiveSegment            (Movie                     theMovie,
  1422.                                  TimeValue                 startTime,
  1423.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x015C, 0xAAAA);
  1424.  
  1425. EXTERN_API( void )
  1426. GetMovieActiveSegment            (Movie                     theMovie,
  1427.                                  TimeValue *            startTime,
  1428.                                  TimeValue *            duration)                            THREEWORDINLINE(0x303C, 0x015D, 0xAAAA);
  1429.  
  1430. EXTERN_API( TimeValue )
  1431. GetMovieTime                    (Movie                     theMovie,
  1432.                                  TimeRecord *            currentTime)                        TWOWORDINLINE(0x7039, 0xAAAA);
  1433.  
  1434. EXTERN_API( void )
  1435. SetMovieTime                    (Movie                     theMovie,
  1436.                                  const TimeRecord *        newtime)                            TWOWORDINLINE(0x703C, 0xAAAA);
  1437.  
  1438. EXTERN_API( void )
  1439. SetMovieTimeValue                (Movie                     theMovie,
  1440.                                  TimeValue                 newtime)                            TWOWORDINLINE(0x703D, 0xAAAA);
  1441.  
  1442.  
  1443. EXTERN_API( UserData )
  1444. GetMovieUserData                (Movie                     theMovie)                            TWOWORDINLINE(0x703E, 0xAAAA);
  1445.  
  1446.  
  1447. /*************************
  1448. * Track/Media finding routines
  1449. **************************/
  1450. EXTERN_API( long )
  1451. GetMovieTrackCount                (Movie                     theMovie)                            TWOWORDINLINE(0x703F, 0xAAAA);
  1452.  
  1453. EXTERN_API( Track )
  1454. GetMovieTrack                    (Movie                     theMovie,
  1455.                                  long                     trackID)                            TWOWORDINLINE(0x7040, 0xAAAA);
  1456.  
  1457. EXTERN_API( Track )
  1458. GetMovieIndTrack                (Movie                     theMovie,
  1459.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0117, 0xAAAA);
  1460.  
  1461. EXTERN_API( Track )
  1462. GetMovieIndTrackType            (Movie                     theMovie,
  1463.                                  long                     index,
  1464.                                  OSType                 trackType,
  1465.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0208, 0xAAAA);
  1466.  
  1467. EXTERN_API( long )
  1468. GetTrackID                        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0127, 0xAAAA);
  1469.  
  1470. EXTERN_API( Movie )
  1471. GetTrackMovie                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00D0, 0xAAAA);
  1472.  
  1473. /*************************
  1474. * Track creation routines
  1475. **************************/
  1476. EXTERN_API( Track )
  1477. NewMovieTrack                    (Movie                     theMovie,
  1478.                                  Fixed                     width,
  1479.                                  Fixed                     height,
  1480.                                  short                     trackVolume)                        THREEWORDINLINE(0x303C, 0x0188, 0xAAAA);
  1481.  
  1482. EXTERN_API( void )
  1483. DisposeMovieTrack                (Track                     theTrack)                            TWOWORDINLINE(0x7042, 0xAAAA);
  1484.  
  1485. /*************************
  1486. * Track State routines
  1487. **************************/
  1488. EXTERN_API( unsigned long )
  1489. GetTrackCreationTime            (Track                     theTrack)                            TWOWORDINLINE(0x7043, 0xAAAA);
  1490.  
  1491. EXTERN_API( unsigned long )
  1492. GetTrackModificationTime        (Track                     theTrack)                            TWOWORDINLINE(0x7044, 0xAAAA);
  1493.  
  1494.  
  1495. EXTERN_API( Boolean )
  1496. GetTrackEnabled                    (Track                     theTrack)                            TWOWORDINLINE(0x7045, 0xAAAA);
  1497.  
  1498. EXTERN_API( void )
  1499. SetTrackEnabled                    (Track                     theTrack,
  1500.                                  Boolean                 isEnabled)                            TWOWORDINLINE(0x7046, 0xAAAA);
  1501.  
  1502. EXTERN_API( long )
  1503. GetTrackUsage                    (Track                     theTrack)                            TWOWORDINLINE(0x7047, 0xAAAA);
  1504.  
  1505. EXTERN_API( void )
  1506. SetTrackUsage                    (Track                     theTrack,
  1507.                                  long                     usage)                                TWOWORDINLINE(0x7048, 0xAAAA);
  1508.  
  1509. EXTERN_API( TimeValue )
  1510. GetTrackDuration                (Track                     theTrack)                            TWOWORDINLINE(0x704B, 0xAAAA);
  1511.  
  1512. EXTERN_API( TimeValue )
  1513. GetTrackOffset                    (Track                     theTrack)                            TWOWORDINLINE(0x704C, 0xAAAA);
  1514.  
  1515. EXTERN_API( void )
  1516. SetTrackOffset                    (Track                     theTrack,
  1517.                                  TimeValue                 movieOffsetTime)                    TWOWORDINLINE(0x704D, 0xAAAA);
  1518.  
  1519. EXTERN_API( short )
  1520. GetTrackLayer                    (Track                     theTrack)                            TWOWORDINLINE(0x7050, 0xAAAA);
  1521.  
  1522. EXTERN_API( void )
  1523. SetTrackLayer                    (Track                     theTrack,
  1524.                                  short                     layer)                                TWOWORDINLINE(0x7051, 0xAAAA);
  1525.  
  1526. EXTERN_API( Track )
  1527. GetTrackAlternate                (Track                     theTrack)                            TWOWORDINLINE(0x7052, 0xAAAA);
  1528.  
  1529. EXTERN_API( void )
  1530. SetTrackAlternate                (Track                     theTrack,
  1531.                                  Track                     alternateT)                            TWOWORDINLINE(0x7053, 0xAAAA);
  1532.  
  1533. EXTERN_API( void )
  1534. SetAutoTrackAlternatesEnabled    (Movie                     theMovie,
  1535.                                  Boolean                 enable)                                THREEWORDINLINE(0x303C, 0x015E, 0xAAAA);
  1536.  
  1537. EXTERN_API( void )
  1538. SelectMovieAlternates            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x015F, 0xAAAA);
  1539.  
  1540. EXTERN_API( short )
  1541. GetTrackVolume                    (Track                     theTrack)                            TWOWORDINLINE(0x7054, 0xAAAA);
  1542.  
  1543. EXTERN_API( void )
  1544. SetTrackVolume                    (Track                     theTrack,
  1545.                                  short                     volume)                                TWOWORDINLINE(0x7055, 0xAAAA);
  1546.  
  1547. EXTERN_API( void )
  1548. GetTrackMatrix                    (Track                     theTrack,
  1549.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7056, 0xAAAA);
  1550.  
  1551. EXTERN_API( void )
  1552. SetTrackMatrix                    (Track                     theTrack,
  1553.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7057, 0xAAAA);
  1554.  
  1555. EXTERN_API( void )
  1556. GetTrackDimensions                (Track                     theTrack,
  1557.                                  Fixed *                width,
  1558.                                  Fixed *                height)                                TWOWORDINLINE(0x705D, 0xAAAA);
  1559.  
  1560. EXTERN_API( void )
  1561. SetTrackDimensions                (Track                     theTrack,
  1562.                                  Fixed                     width,
  1563.                                  Fixed                     height)                                TWOWORDINLINE(0x705E, 0xAAAA);
  1564.  
  1565. EXTERN_API( UserData )
  1566. GetTrackUserData                (Track                     theTrack)                            TWOWORDINLINE(0x705F, 0xAAAA);
  1567.  
  1568. EXTERN_API( OSErr )
  1569. GetTrackDisplayMatrix            (Track                     theTrack,
  1570.                                  MatrixRecord *            matrix)                                THREEWORDINLINE(0x303C, 0x0263, 0xAAAA);
  1571.  
  1572. EXTERN_API( OSErr )
  1573. GetTrackSoundLocalizationSettings (Track                 theTrack,
  1574.                                  Handle *                settings)                            THREEWORDINLINE(0x303C, 0x0282, 0xAAAA);
  1575.  
  1576. EXTERN_API( OSErr )
  1577. SetTrackSoundLocalizationSettings (Track                 theTrack,
  1578.                                  Handle                 settings)                            THREEWORDINLINE(0x303C, 0x0283, 0xAAAA);
  1579.  
  1580. /*************************
  1581. * get Media routines
  1582. **************************/
  1583. EXTERN_API( Media )
  1584. NewTrackMedia                    (Track                     theTrack,
  1585.                                  OSType                 mediaType,
  1586.                                  TimeScale                 timeScale,
  1587.                                  Handle                 dataRef,
  1588.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x018E, 0xAAAA);
  1589.  
  1590. EXTERN_API( void )
  1591. DisposeTrackMedia                (Media                     theMedia)                            TWOWORDINLINE(0x7061, 0xAAAA);
  1592.  
  1593. EXTERN_API( Media )
  1594. GetTrackMedia                    (Track                     theTrack)                            TWOWORDINLINE(0x7062, 0xAAAA);
  1595.  
  1596. EXTERN_API( Track )
  1597. GetMediaTrack                    (Media                     theMedia)                            THREEWORDINLINE(0x303C, 0x00C5, 0xAAAA);
  1598.  
  1599.  
  1600.  
  1601. /*************************
  1602. * Media State routines
  1603. **************************/
  1604. EXTERN_API( unsigned long )
  1605. GetMediaCreationTime            (Media                     theMedia)                            TWOWORDINLINE(0x7066, 0xAAAA);
  1606.  
  1607. EXTERN_API( unsigned long )
  1608. GetMediaModificationTime        (Media                     theMedia)                            TWOWORDINLINE(0x7067, 0xAAAA);
  1609.  
  1610. EXTERN_API( TimeScale )
  1611. GetMediaTimeScale                (Media                     theMedia)                            TWOWORDINLINE(0x7068, 0xAAAA);
  1612.  
  1613. EXTERN_API( void )
  1614. SetMediaTimeScale                (Media                     theMedia,
  1615.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x7069, 0xAAAA);
  1616.  
  1617. EXTERN_API( TimeValue )
  1618. GetMediaDuration                (Media                     theMedia)                            TWOWORDINLINE(0x706A, 0xAAAA);
  1619.  
  1620. EXTERN_API( short )
  1621. GetMediaLanguage                (Media                     theMedia)                            TWOWORDINLINE(0x706B, 0xAAAA);
  1622.  
  1623. EXTERN_API( void )
  1624. SetMediaLanguage                (Media                     theMedia,
  1625.                                  short                     language)                            TWOWORDINLINE(0x706C, 0xAAAA);
  1626.  
  1627. EXTERN_API( short )
  1628. GetMediaQuality                    (Media                     theMedia)                            TWOWORDINLINE(0x706D, 0xAAAA);
  1629.  
  1630. EXTERN_API( void )
  1631. SetMediaQuality                    (Media                     theMedia,
  1632.                                  short                     quality)                            TWOWORDINLINE(0x706E, 0xAAAA);
  1633.  
  1634. EXTERN_API( void )
  1635. GetMediaHandlerDescription        (Media                     theMedia,
  1636.                                  OSType *                mediaType,
  1637.                                  Str255                 creatorName,
  1638.                                  OSType *                creatorManufacturer)                TWOWORDINLINE(0x706F, 0xAAAA);
  1639.  
  1640. EXTERN_API( UserData )
  1641. GetMediaUserData                (Media                     theMedia)                            TWOWORDINLINE(0x7070, 0xAAAA);
  1642.  
  1643. EXTERN_API( OSErr )
  1644. GetMediaInputMap                (Media                     theMedia,
  1645.                                  QTAtomContainer *        inputMap)                            THREEWORDINLINE(0x303C, 0x0249, 0xAAAA);
  1646.  
  1647. EXTERN_API( OSErr )
  1648. SetMediaInputMap                (Media                     theMedia,
  1649.                                  QTAtomContainer         inputMap)                            THREEWORDINLINE(0x303C, 0x024A, 0xAAAA);
  1650.  
  1651. /*************************
  1652. * Media Handler routines
  1653. **************************/
  1654. EXTERN_API( MediaHandler )
  1655. GetMediaHandler                    (Media                     theMedia)                            TWOWORDINLINE(0x7071, 0xAAAA);
  1656.  
  1657. EXTERN_API( OSErr )
  1658. SetMediaHandler                    (Media                     theMedia,
  1659.                                  MediaHandlerComponent     mH)                                    THREEWORDINLINE(0x303C, 0x0190, 0xAAAA);
  1660.  
  1661.  
  1662. /*************************
  1663. * Media's Data routines
  1664. **************************/
  1665. EXTERN_API( OSErr )
  1666. BeginMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7072, 0xAAAA);
  1667.  
  1668. EXTERN_API( OSErr )
  1669. EndMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7073, 0xAAAA);
  1670.  
  1671. EXTERN_API( OSErr )
  1672. SetMediaDefaultDataRefIndex        (Media                     theMedia,
  1673.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x01E0, 0xAAAA);
  1674.  
  1675. EXTERN_API( void )
  1676. GetMediaDataHandlerDescription    (Media                     theMedia,
  1677.                                  short                     index,
  1678.                                  OSType *                dhType,
  1679.                                  Str255                 creatorName,
  1680.                                  OSType *                creatorManufacturer)                THREEWORDINLINE(0x303C, 0x019E, 0xAAAA);
  1681.  
  1682. EXTERN_API( DataHandler )
  1683. GetMediaDataHandler                (Media                     theMedia,
  1684.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x019F, 0xAAAA);
  1685.  
  1686. EXTERN_API( OSErr )
  1687. SetMediaDataHandler                (Media                     theMedia,
  1688.                                  short                     index,
  1689.                                  DataHandlerComponent     dataHandler)                        THREEWORDINLINE(0x303C, 0x01A0, 0xAAAA);
  1690.  
  1691. EXTERN_API( Component )
  1692. GetDataHandler                    (Handle                 dataRef,
  1693.                                  OSType                 dataHandlerSubType,
  1694.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x01ED, 0xAAAA);
  1695.  
  1696. EXTERN_API( OSErr )
  1697. OpenADataHandler                (Handle                 dataRef,
  1698.                                  OSType                 dataHandlerSubType,
  1699.                                  Handle                 anchorDataRef,
  1700.                                  OSType                 anchorDataRefType,
  1701.                                  TimeBase                 tb,
  1702.                                  long                     flags,
  1703.                                  ComponentInstance *    dh)                                    THREEWORDINLINE(0x303C, 0x031C, 0xAAAA);
  1704.  
  1705.  
  1706. /*************************
  1707. * Media Sample Table Routines
  1708. **************************/
  1709. EXTERN_API( long )
  1710. GetMediaSampleDescriptionCount    (Media                     theMedia)                            TWOWORDINLINE(0x7077, 0xAAAA);
  1711.  
  1712. EXTERN_API( void )
  1713. GetMediaSampleDescription        (Media                     theMedia,
  1714.                                  long                     index,
  1715.                                  SampleDescriptionHandle  descH)                            TWOWORDINLINE(0x7078, 0xAAAA);
  1716.  
  1717. EXTERN_API( OSErr )
  1718. SetMediaSampleDescription        (Media                     theMedia,
  1719.                                  long                     index,
  1720.                                  SampleDescriptionHandle  descH)                            THREEWORDINLINE(0x303C, 0x01D0, 0xAAAA);
  1721.  
  1722. EXTERN_API( long )
  1723. GetMediaSampleCount                (Media                     theMedia)                            TWOWORDINLINE(0x7079, 0xAAAA);
  1724.  
  1725. EXTERN_API( long )
  1726. GetMediaSyncSampleCount            (Media                     theMedia)                            THREEWORDINLINE(0x303C, 0x02B2, 0xAAAA);
  1727.  
  1728. EXTERN_API( void )
  1729. SampleNumToMediaTime            (Media                     theMedia,
  1730.                                  long                     logicalSampleNum,
  1731.                                  TimeValue *            sampleTime,
  1732.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707A, 0xAAAA);
  1733.  
  1734. EXTERN_API( void )
  1735. MediaTimeToSampleNum            (Media                     theMedia,
  1736.                                  TimeValue                 time,
  1737.                                  long *                    sampleNum,
  1738.                                  TimeValue *            sampleTime,
  1739.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707B, 0xAAAA);
  1740.  
  1741.  
  1742. EXTERN_API( OSErr )
  1743. AddMediaSample                    (Media                     theMedia,
  1744.                                  Handle                 dataIn,
  1745.                                  long                     inOffset,
  1746.                                  unsigned long             size,
  1747.                                  TimeValue                 durationPerSample,
  1748.                                  SampleDescriptionHandle  sampleDescriptionH,
  1749.                                  long                     numberOfSamples,
  1750.                                  short                     sampleFlags,
  1751.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707C, 0xAAAA);
  1752.  
  1753. EXTERN_API( OSErr )
  1754. AddMediaSampleReference            (Media                     theMedia,
  1755.                                  long                     dataOffset,
  1756.                                  unsigned long             size,
  1757.                                  TimeValue                 durationPerSample,
  1758.                                  SampleDescriptionHandle  sampleDescriptionH,
  1759.                                  long                     numberOfSamples,
  1760.                                  short                     sampleFlags,
  1761.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707D, 0xAAAA);
  1762.  
  1763. EXTERN_API( OSErr )
  1764. AddMediaSampleReferences        (Media                     theMedia,
  1765.                                  SampleDescriptionHandle  sampleDescriptionH,
  1766.                                  long                     numberOfSamples,
  1767.                                  SampleReferencePtr     sampleRefs,
  1768.                                  TimeValue *            sampleTime)                            THREEWORDINLINE(0x303C, 0x01F7, 0xAAAA);
  1769.  
  1770. EXTERN_API( OSErr )
  1771. AddMediaSampleReferences64        (Media                     theMedia,
  1772.                                  SampleDescriptionHandle  sampleDescriptionH,
  1773.                                  long                     numberOfSamples,
  1774.                                  SampleReference64Ptr     sampleRefs,
  1775.                                  TimeValue *            sampleTime)                            THREEWORDINLINE(0x303C, 0x02E8, 0xAAAA);
  1776.  
  1777. EXTERN_API( OSErr )
  1778. GetMediaSample                    (Media                     theMedia,
  1779.                                  Handle                 dataOut,
  1780.                                  long                     maxSizeToGrow,
  1781.                                  long *                    size,
  1782.                                  TimeValue                 time,
  1783.                                  TimeValue *            sampleTime,
  1784.                                  TimeValue *            durationPerSample,
  1785.                                  SampleDescriptionHandle  sampleDescriptionH,
  1786.                                  long *                    sampleDescriptionIndex,
  1787.                                  long                     maxNumberOfSamples,
  1788.                                  long *                    numberOfSamples,
  1789.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707E, 0xAAAA);
  1790.  
  1791. EXTERN_API( OSErr )
  1792. GetMediaSampleReference            (Media                     theMedia,
  1793.                                  long *                    dataOffset,
  1794.                                  long *                    size,
  1795.                                  TimeValue                 time,
  1796.                                  TimeValue *            sampleTime,
  1797.                                  TimeValue *            durationPerSample,
  1798.                                  SampleDescriptionHandle  sampleDescriptionH,
  1799.                                  long *                    sampleDescriptionIndex,
  1800.                                  long                     maxNumberOfSamples,
  1801.                                  long *                    numberOfSamples,
  1802.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707F, 0xAAAA);
  1803.  
  1804. EXTERN_API( OSErr )
  1805. GetMediaSampleReferences        (Media                     theMedia,
  1806.                                  TimeValue                 time,
  1807.                                  TimeValue *            sampleTime,
  1808.                                  SampleDescriptionHandle  sampleDescriptionH,
  1809.                                  long *                    sampleDescriptionIndex,
  1810.                                  long                     maxNumberOfEntries,
  1811.                                  long *                    actualNumberofEntries,
  1812.                                  SampleReferencePtr     sampleRefs)                            THREEWORDINLINE(0x303C, 0x0235, 0xAAAA);
  1813.  
  1814. EXTERN_API( OSErr )
  1815. GetMediaSampleReferences64        (Media                     theMedia,
  1816.                                  TimeValue                 time,
  1817.                                  TimeValue *            sampleTime,
  1818.                                  SampleDescriptionHandle  sampleDescriptionH,
  1819.                                  long *                    sampleDescriptionIndex,
  1820.                                  long                     maxNumberOfEntries,
  1821.                                  long *                    actualNumberofEntries,
  1822.                                  SampleReference64Ptr     sampleRefs)                            THREEWORDINLINE(0x303C, 0x02E9, 0xAAAA);
  1823.  
  1824. EXTERN_API( OSErr )
  1825. SetMediaPreferredChunkSize        (Media                     theMedia,
  1826.                                  long                     maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F8, 0xAAAA);
  1827.  
  1828. EXTERN_API( OSErr )
  1829. GetMediaPreferredChunkSize        (Media                     theMedia,
  1830.                                  long *                    maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F9, 0xAAAA);
  1831.  
  1832. EXTERN_API( OSErr )
  1833. SetMediaShadowSync                (Media                     theMedia,
  1834.                                  long                     frameDiffSampleNum,
  1835.                                  long                     syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0121, 0xAAAA);
  1836.  
  1837. EXTERN_API( OSErr )
  1838. GetMediaShadowSync                (Media                     theMedia,
  1839.                                  long                     frameDiffSampleNum,
  1840.                                  long *                    syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0122, 0xAAAA);
  1841.  
  1842. /*************************
  1843. * Editing Routines
  1844. **************************/
  1845. EXTERN_API( OSErr )
  1846. InsertMediaIntoTrack            (Track                     theTrack,
  1847.                                  TimeValue                 trackStart,
  1848.                                  TimeValue                 mediaTime,
  1849.                                  TimeValue                 mediaDuration,
  1850.                                  Fixed                     mediaRate)                            THREEWORDINLINE(0x303C, 0x0183, 0xAAAA);
  1851.  
  1852. EXTERN_API( OSErr )
  1853. InsertTrackSegment                (Track                     srcTrack,
  1854.                                  Track                     dstTrack,
  1855.                                  TimeValue                 srcIn,
  1856.                                  TimeValue                 srcDuration,
  1857.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0085, 0xAAAA);
  1858.  
  1859. EXTERN_API( OSErr )
  1860. InsertMovieSegment                (Movie                     srcMovie,
  1861.                                  Movie                     dstMovie,
  1862.                                  TimeValue                 srcIn,
  1863.                                  TimeValue                 srcDuration,
  1864.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0086, 0xAAAA);
  1865.  
  1866. EXTERN_API( OSErr )
  1867. InsertEmptyTrackSegment            (Track                     dstTrack,
  1868.                                  TimeValue                 dstIn,
  1869.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0087, 0xAAAA);
  1870.  
  1871. EXTERN_API( OSErr )
  1872. InsertEmptyMovieSegment            (Movie                     dstMovie,
  1873.                                  TimeValue                 dstIn,
  1874.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0088, 0xAAAA);
  1875.  
  1876. EXTERN_API( OSErr )
  1877. DeleteTrackSegment                (Track                     theTrack,
  1878.                                  TimeValue                 startTime,
  1879.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0089, 0xAAAA);
  1880.  
  1881. EXTERN_API( OSErr )
  1882. DeleteMovieSegment                (Movie                     theMovie,
  1883.                                  TimeValue                 startTime,
  1884.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x008A, 0xAAAA);
  1885.  
  1886. EXTERN_API( OSErr )
  1887. ScaleTrackSegment                (Track                     theTrack,
  1888.                                  TimeValue                 startTime,
  1889.                                  TimeValue                 oldDuration,
  1890.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008B, 0xAAAA);
  1891.  
  1892. EXTERN_API( OSErr )
  1893. ScaleMovieSegment                (Movie                     theMovie,
  1894.                                  TimeValue                 startTime,
  1895.                                  TimeValue                 oldDuration,
  1896.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008C, 0xAAAA);
  1897.  
  1898.  
  1899. /*************************
  1900. * Hi-level Editing Routines
  1901. **************************/
  1902. EXTERN_API( Movie )
  1903. CutMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008D, 0xAAAA);
  1904.  
  1905. EXTERN_API( Movie )
  1906. CopyMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008E, 0xAAAA);
  1907.  
  1908. EXTERN_API( void )
  1909. PasteMovieSelection                (Movie                     theMovie,
  1910.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x008F, 0xAAAA);
  1911.  
  1912. EXTERN_API( void )
  1913. AddMovieSelection                (Movie                     theMovie,
  1914.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x0152, 0xAAAA);
  1915.  
  1916. EXTERN_API( void )
  1917. ClearMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00E1, 0xAAAA);
  1918.  
  1919. EXTERN_API( OSErr )
  1920. PasteHandleIntoMovie            (Handle                 h,
  1921.                                  OSType                 handleType,
  1922.                                  Movie                     theMovie,
  1923.                                  long                     flags,
  1924.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x00CB, 0xAAAA);
  1925.  
  1926. EXTERN_API( OSErr )
  1927. PutMovieIntoTypedHandle            (Movie                     theMovie,
  1928.                                  Track                     targetTrack,
  1929.                                  OSType                 handleType,
  1930.                                  Handle                 publicMovie,
  1931.                                  TimeValue                 start,
  1932.                                  TimeValue                 dur,
  1933.                                  long                     flags,
  1934.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CD, 0xAAAA);
  1935.  
  1936. EXTERN_API( Component )
  1937. IsScrapMovie                    (Track                     targetTrack)                        THREEWORDINLINE(0x303C, 0x00CC, 0xAAAA);
  1938.  
  1939. /*************************
  1940. * Middle-level Editing Routines
  1941. **************************/
  1942. EXTERN_API( OSErr )
  1943. CopyTrackSettings                (Track                     srcTrack,
  1944.                                  Track                     dstTrack)                            THREEWORDINLINE(0x303C, 0x0153, 0xAAAA);
  1945.  
  1946. EXTERN_API( OSErr )
  1947. CopyMovieSettings                (Movie                     srcMovie,
  1948.                                  Movie                     dstMovie)                            THREEWORDINLINE(0x303C, 0x0154, 0xAAAA);
  1949.  
  1950. EXTERN_API( OSErr )
  1951. AddEmptyTrackToMovie            (Track                     srcTrack,
  1952.                                  Movie                     dstMovie,
  1953.                                  Handle                 dataRef,
  1954.                                  OSType                 dataRefType,
  1955.                                  Track *                dstTrack)                            TWOWORDINLINE(0x7074, 0xAAAA);
  1956.  
  1957. /*************************
  1958. * movie & track edit state routines
  1959. **************************/
  1960. EXTERN_API( MovieEditState )
  1961. NewMovieEditState                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0104, 0xAAAA);
  1962.  
  1963. EXTERN_API( OSErr )
  1964. UseMovieEditState                (Movie                     theMovie,
  1965.                                  MovieEditState         toState)                            THREEWORDINLINE(0x303C, 0x0105, 0xAAAA);
  1966.  
  1967. EXTERN_API( OSErr )
  1968. DisposeMovieEditState            (MovieEditState         state)                                THREEWORDINLINE(0x303C, 0x0106, 0xAAAA);
  1969.  
  1970. EXTERN_API( TrackEditState )
  1971. NewTrackEditState                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0107, 0xAAAA);
  1972.  
  1973. EXTERN_API( OSErr )
  1974. UseTrackEditState                (Track                     theTrack,
  1975.                                  TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0108, 0xAAAA);
  1976.  
  1977. EXTERN_API( OSErr )
  1978. DisposeTrackEditState            (TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0109, 0xAAAA);
  1979.  
  1980. /*************************
  1981. * track reference routines
  1982. **************************/
  1983. EXTERN_API( OSErr )
  1984. AddTrackReference                (Track                     theTrack,
  1985.                                  Track                     refTrack,
  1986.                                  OSType                 refType,
  1987.                                  long *                    addedIndex)                            THREEWORDINLINE(0x303C, 0x01F0, 0xAAAA);
  1988.  
  1989. EXTERN_API( OSErr )
  1990. DeleteTrackReference            (Track                     theTrack,
  1991.                                  OSType                 refType,
  1992.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F1, 0xAAAA);
  1993.  
  1994. EXTERN_API( OSErr )
  1995. SetTrackReference                (Track                     theTrack,
  1996.                                  Track                     refTrack,
  1997.                                  OSType                 refType,
  1998.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F2, 0xAAAA);
  1999.  
  2000. EXTERN_API( Track )
  2001. GetTrackReference                (Track                     theTrack,
  2002.                                  OSType                 refType,
  2003.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F3, 0xAAAA);
  2004.  
  2005. EXTERN_API( OSType )
  2006. GetNextTrackReferenceType        (Track                     theTrack,
  2007.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F4, 0xAAAA);
  2008.  
  2009. EXTERN_API( long )
  2010. GetTrackReferenceCount            (Track                     theTrack,
  2011.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F5, 0xAAAA);
  2012.  
  2013.  
  2014. /*************************
  2015. * high level file conversion routines
  2016. **************************/
  2017. EXTERN_API( OSErr )
  2018. ConvertFileToMovieFile            (const FSSpec *            inputFile,
  2019.                                  const FSSpec *            outputFile,
  2020.                                  OSType                 creator,
  2021.                                  ScriptCode             scriptTag,
  2022.                                  short *                resID,
  2023.                                  long                     flags,
  2024.                                  ComponentInstance         userComp,
  2025.                                  MovieProgressUPP         proc,
  2026.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01CB, 0xAAAA);
  2027.  
  2028. EXTERN_API( OSErr )
  2029. ConvertMovieToFile                (Movie                     theMovie,
  2030.                                  Track                     onlyTrack,
  2031.                                  FSSpec *                outputFile,
  2032.                                  OSType                 fileType,
  2033.                                  OSType                 creator,
  2034.                                  ScriptCode             scriptTag,
  2035.                                  short *                resID,
  2036.                                  long                     flags,
  2037.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CC, 0xAAAA);
  2038.  
  2039. enum {
  2040.     kGetMovieImporterValidateToFind = 1L << 0,
  2041.     kGetMovieImporterAllowNewFile = 1L << 1,
  2042.     kGetMovieImporterDontConsiderGraphicsImporters = 1L << 2,
  2043.     kGetMovieImporterDontConsiderFileOnlyImporters = 1L << 6
  2044. };
  2045.  
  2046. EXTERN_API( OSErr )
  2047. GetMovieImporterForDataRef        (OSType                 dataRefType,
  2048.                                  Handle                 dataRef,
  2049.                                  long                     flags,
  2050.                                  Component *            importer)                            THREEWORDINLINE(0x303C, 0x02C7, 0xAAAA);
  2051.  
  2052. /*************************
  2053. * Movie Timebase Conversion Routines
  2054. **************************/
  2055. EXTERN_API( TimeValue )
  2056. TrackTimeToMediaTime            (TimeValue                 value,
  2057.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0096, 0xAAAA);
  2058.  
  2059. EXTERN_API( Fixed )
  2060. GetTrackEditRate                (Track                     theTrack,
  2061.                                  TimeValue                 atTime)                                THREEWORDINLINE(0x303C, 0x0123, 0xAAAA);
  2062.  
  2063.  
  2064. /*************************
  2065. * Miscellaneous Routines
  2066. **************************/
  2067.  
  2068. EXTERN_API( long )
  2069. GetMovieDataSize                (Movie                     theMovie,
  2070.                                  TimeValue                 startTime,
  2071.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0098, 0xAAAA);
  2072.  
  2073. EXTERN_API( OSErr )
  2074. GetMovieDataSize64                (Movie                     theMovie,
  2075.                                  TimeValue                 startTime,
  2076.                                  TimeValue                 duration,
  2077.                                  wide *                    dataSize)                            THREEWORDINLINE(0x303C, 0x02EB, 0xAAAA);
  2078.  
  2079. EXTERN_API( long )
  2080. GetTrackDataSize                (Track                     theTrack,
  2081.                                  TimeValue                 startTime,
  2082.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0149, 0xAAAA);
  2083.  
  2084. EXTERN_API( OSErr )
  2085. GetTrackDataSize64                (Track                     theTrack,
  2086.                                  TimeValue                 startTime,
  2087.                                  TimeValue                 duration,
  2088.                                  wide *                    dataSize)                            THREEWORDINLINE(0x303C, 0x02EC, 0xAAAA);
  2089.  
  2090. EXTERN_API( long )
  2091. GetMediaDataSize                (Media                     theMedia,
  2092.                                  TimeValue                 startTime,
  2093.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0099, 0xAAAA);
  2094.  
  2095. EXTERN_API( OSErr )
  2096. GetMediaDataSize64                (Media                     theMedia,
  2097.                                  TimeValue                 startTime,
  2098.                                  TimeValue                 duration,
  2099.                                  wide *                    dataSize)                            THREEWORDINLINE(0x303C, 0x02ED, 0xAAAA);
  2100.  
  2101. EXTERN_API( Boolean )
  2102. PtInMovie                        (Movie                     theMovie,
  2103.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009A, 0xAAAA);
  2104.  
  2105. EXTERN_API( Boolean )
  2106. PtInTrack                        (Track                     theTrack,
  2107.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009B, 0xAAAA);
  2108.  
  2109. /*************************
  2110. * Group Selection Routines
  2111. **************************/
  2112.  
  2113. EXTERN_API( void )
  2114. SetMovieLanguage                (Movie                     theMovie,
  2115.                                  long                     language)                            THREEWORDINLINE(0x303C, 0x009C, 0xAAAA);
  2116.  
  2117.  
  2118. /*************************
  2119. * User Data
  2120. **************************/
  2121.  
  2122. EXTERN_API( OSErr )
  2123. GetUserData                        (UserData                 theUserData,
  2124.                                  Handle                 data,
  2125.                                  OSType                 udType,
  2126.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x009E, 0xAAAA);
  2127.  
  2128. EXTERN_API( OSErr )
  2129. AddUserData                        (UserData                 theUserData,
  2130.                                  Handle                 data,
  2131.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x009F, 0xAAAA);
  2132.  
  2133. EXTERN_API( OSErr )
  2134. RemoveUserData                    (UserData                 theUserData,
  2135.                                  OSType                 udType,
  2136.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x00A0, 0xAAAA);
  2137.  
  2138. EXTERN_API( short )
  2139. CountUserDataType                (UserData                 theUserData,
  2140.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x014B, 0xAAAA);
  2141.  
  2142. EXTERN_API( long )
  2143. GetNextUserDataType                (UserData                 theUserData,
  2144.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x01A5, 0xAAAA);
  2145.  
  2146. EXTERN_API( OSErr )
  2147. GetUserDataItem                    (UserData                 theUserData,
  2148.                                  void *                    data,
  2149.                                  long                     size,
  2150.                                  OSType                 udType,
  2151.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0126, 0xAAAA);
  2152.  
  2153. EXTERN_API( OSErr )
  2154. SetUserDataItem                    (UserData                 theUserData,
  2155.                                  void *                    data,
  2156.                                  long                     size,
  2157.                                  OSType                 udType,
  2158.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x012E, 0xAAAA);
  2159.  
  2160. EXTERN_API( OSErr )
  2161. AddUserDataText                    (UserData                 theUserData,
  2162.                                  Handle                 data,
  2163.                                  OSType                 udType,
  2164.                                  long                     index,
  2165.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014C, 0xAAAA);
  2166.  
  2167. EXTERN_API( OSErr )
  2168. GetUserDataText                    (UserData                 theUserData,
  2169.                                  Handle                 data,
  2170.                                  OSType                 udType,
  2171.                                  long                     index,
  2172.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014D, 0xAAAA);
  2173.  
  2174. EXTERN_API( OSErr )
  2175. RemoveUserDataText                (UserData                 theUserData,
  2176.                                  OSType                 udType,
  2177.                                  long                     index,
  2178.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014E, 0xAAAA);
  2179.  
  2180. EXTERN_API( OSErr )
  2181. NewUserData                        (UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x012F, 0xAAAA);
  2182.  
  2183. EXTERN_API( OSErr )
  2184. DisposeUserData                    (UserData                 theUserData)                        THREEWORDINLINE(0x303C, 0x0130, 0xAAAA);
  2185.  
  2186. EXTERN_API( OSErr )
  2187. NewUserDataFromHandle            (Handle                 h,
  2188.                                  UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x0131, 0xAAAA);
  2189.  
  2190. EXTERN_API( OSErr )
  2191. PutUserDataIntoHandle            (UserData                 theUserData,
  2192.                                  Handle                 h)                                    THREEWORDINLINE(0x303C, 0x0132, 0xAAAA);
  2193.  
  2194.  
  2195. EXTERN_API( OSErr )
  2196. SetMoviePropertyAtom            (Movie                     theMovie,
  2197.                                  QTAtomContainer         propertyAtom)                        THREEWORDINLINE(0x303C, 0x0284, 0xAAAA);
  2198.  
  2199. EXTERN_API( OSErr )
  2200. GetMoviePropertyAtom            (Movie                     theMovie,
  2201.                                  QTAtomContainer *        propertyAtom)                        THREEWORDINLINE(0x303C, 0x0285, 0xAAAA);
  2202.  
  2203.  
  2204. EXTERN_API( void )
  2205. GetMediaNextInterestingTime        (Media                     theMedia,
  2206.                                  short                     interestingTimeFlags,
  2207.                                  TimeValue                 time,
  2208.                                  Fixed                     rate,
  2209.                                  TimeValue *            interestingTime,
  2210.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x016D, 0xAAAA);
  2211.  
  2212. EXTERN_API( void )
  2213. GetTrackNextInterestingTime        (Track                     theTrack,
  2214.                                  short                     interestingTimeFlags,
  2215.                                  TimeValue                 time,
  2216.                                  Fixed                     rate,
  2217.                                  TimeValue *            interestingTime,
  2218.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x00E2, 0xAAAA);
  2219.  
  2220. EXTERN_API( void )
  2221. GetMovieNextInterestingTime        (Movie                     theMovie,
  2222.                                  short                     interestingTimeFlags,
  2223.                                  short                     numMediaTypes,
  2224.                                  const OSType *            whichMediaTypes,
  2225.                                  TimeValue                 time,
  2226.                                  Fixed                     rate,
  2227.                                  TimeValue *            interestingTime,
  2228.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x010E, 0xAAAA);
  2229.  
  2230.  
  2231. EXTERN_API( OSErr )
  2232. CreateMovieFile                    (const FSSpec *            fileSpec,
  2233.                                  OSType                 creator,
  2234.                                  ScriptCode             scriptTag,
  2235.                                  long                     createMovieFileFlags,
  2236.                                  short *                resRefNum,
  2237.                                  Movie *                newmovie)                            THREEWORDINLINE(0x303C, 0x0191, 0xAAAA);
  2238.  
  2239. EXTERN_API( OSErr )
  2240. OpenMovieFile                    (const FSSpec *            fileSpec,
  2241.                                  short *                resRefNum,
  2242.                                  SInt8                     permission)                            THREEWORDINLINE(0x303C, 0x0192, 0xAAAA);
  2243.  
  2244. EXTERN_API( OSErr )
  2245. CloseMovieFile                    (short                     resRefNum)                            THREEWORDINLINE(0x303C, 0x00D5, 0xAAAA);
  2246.  
  2247. EXTERN_API( OSErr )
  2248. DeleteMovieFile                    (const FSSpec *            fileSpec)                            THREEWORDINLINE(0x303C, 0x0175, 0xAAAA);
  2249.  
  2250. EXTERN_API( OSErr )
  2251. NewMovieFromFile                (Movie *                theMovie,
  2252.                                  short                     resRefNum,
  2253.                                  short *                resId,
  2254.                                  StringPtr                 resName,
  2255.                                  short                     newMovieFlags,
  2256.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F0, 0xAAAA);
  2257.  
  2258. EXTERN_API( OSErr )
  2259. NewMovieFromHandle                (Movie *                theMovie,
  2260.                                  Handle                 h,
  2261.                                  short                     newMovieFlags,
  2262.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F1, 0xAAAA);
  2263.  
  2264. EXTERN_API( OSErr )
  2265. NewMovieFromDataFork            (Movie *                theMovie,
  2266.                                  short                     fRefNum,
  2267.                                  long                     fileOffset,
  2268.                                  short                     newMovieFlags,
  2269.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x01B3, 0xAAAA);
  2270.  
  2271. EXTERN_API( OSErr )
  2272. NewMovieFromDataFork64            (Movie *                theMovie,
  2273.                                  long                     fRefNum,
  2274.                                  const wide *            fileOffset,
  2275.                                  short                     newMovieFlags,
  2276.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x02EE, 0xAAAA);
  2277.  
  2278. EXTERN_API( OSErr )
  2279. NewMovieFromUserProc            (Movie *                m,
  2280.                                  short                     flags,
  2281.                                  Boolean *                dataRefWasChanged,
  2282.                                  GetMovieUPP             getProc,
  2283.                                  void *                    refCon,
  2284.                                  Handle                 defaultDataRef,
  2285.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01EC, 0xAAAA);
  2286.  
  2287. EXTERN_API( OSErr )
  2288. NewMovieFromDataRef                (Movie *                m,
  2289.                                  short                     flags,
  2290.                                  short *                id,
  2291.                                  Handle                 dataRef,
  2292.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0220, 0xAAAA);
  2293.  
  2294. EXTERN_API( OSErr )
  2295. AddMovieResource                (Movie                     theMovie,
  2296.                                  short                     resRefNum,
  2297.                                  short *                resId,
  2298.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D7, 0xAAAA);
  2299.  
  2300. EXTERN_API( OSErr )
  2301. UpdateMovieResource                (Movie                     theMovie,
  2302.                                  short                     resRefNum,
  2303.                                  short                     resId,
  2304.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D8, 0xAAAA);
  2305.  
  2306. EXTERN_API( OSErr )
  2307. RemoveMovieResource                (short                     resRefNum,
  2308.                                  short                     resId)                                THREEWORDINLINE(0x303C, 0x0176, 0xAAAA);
  2309.  
  2310. EXTERN_API( Boolean )
  2311. HasMovieChanged                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00D9, 0xAAAA);
  2312.  
  2313. EXTERN_API( void )
  2314. ClearMovieChanged                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0113, 0xAAAA);
  2315.  
  2316. EXTERN_API( OSErr )
  2317. SetMovieDefaultDataRef            (Movie                     theMovie,
  2318.                                  Handle                 dataRef,
  2319.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C1, 0xAAAA);
  2320.  
  2321. EXTERN_API( OSErr )
  2322. GetMovieDefaultDataRef            (Movie                     theMovie,
  2323.                                  Handle *                dataRef,
  2324.                                  OSType *                dataRefType)                        THREEWORDINLINE(0x303C, 0x01D2, 0xAAAA);
  2325.  
  2326. EXTERN_API( OSErr )
  2327. SetMovieAnchorDataRef            (Movie                     theMovie,
  2328.                                  Handle                 dataRef,
  2329.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0315, 0xAAAA);
  2330.  
  2331. EXTERN_API( OSErr )
  2332. GetMovieAnchorDataRef            (Movie                     theMovie,
  2333.                                  Handle *                dataRef,
  2334.                                  OSType *                dataRefType,
  2335.                                  long *                    outFlags)                            THREEWORDINLINE(0x303C, 0x0316, 0xAAAA);
  2336.  
  2337. EXTERN_API( OSErr )
  2338. SetMovieColorTable                (Movie                     theMovie,
  2339.                                  CTabHandle             ctab)                                THREEWORDINLINE(0x303C, 0x0205, 0xAAAA);
  2340.  
  2341. EXTERN_API( OSErr )
  2342. GetMovieColorTable                (Movie                     theMovie,
  2343.                                  CTabHandle *            ctab)                                THREEWORDINLINE(0x303C, 0x0206, 0xAAAA);
  2344.  
  2345. EXTERN_API( void )
  2346. FlattenMovie                    (Movie                     theMovie,
  2347.                                  long                     movieFlattenFlags,
  2348.                                  const FSSpec *            theFile,
  2349.                                  OSType                 creator,
  2350.                                  ScriptCode             scriptTag,
  2351.                                  long                     createMovieFileFlags,
  2352.                                  short *                resId,
  2353.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x019B, 0xAAAA);
  2354.  
  2355. EXTERN_API( Movie )
  2356. FlattenMovieData                (Movie                     theMovie,
  2357.                                  long                     movieFlattenFlags,
  2358.                                  const FSSpec *            theFile,
  2359.                                  OSType                 creator,
  2360.                                  ScriptCode             scriptTag,
  2361.                                  long                     createMovieFileFlags)                THREEWORDINLINE(0x303C, 0x019C, 0xAAAA);
  2362.  
  2363. EXTERN_API( void )
  2364. SetMovieProgressProc            (Movie                     theMovie,
  2365.                                  MovieProgressUPP         p,
  2366.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x019A, 0xAAAA);
  2367.  
  2368. EXTERN_API( void )
  2369. GetMovieProgressProc            (Movie                     theMovie,
  2370.                                  MovieProgressUPP *        p,
  2371.                                  long *                    refcon)                                THREEWORDINLINE(0x303C, 0x0300, 0xAAAA);
  2372.  
  2373. EXTERN_API( OSErr )
  2374. CreateShortcutMovieFile            (const FSSpec *            fileSpec,
  2375.                                  OSType                 creator,
  2376.                                  ScriptCode             scriptTag,
  2377.                                  long                     createMovieFileFlags,
  2378.                                  Handle                 targetDataRef,
  2379.                                  OSType                 targetDataRefType)                    THREEWORDINLINE(0x303C, 0x02FA, 0xAAAA);
  2380.  
  2381. EXTERN_API( OSErr )
  2382. MovieSearchText                    (Movie                     theMovie,
  2383.                                  Ptr                     text,
  2384.                                  long                     size,
  2385.                                  long                     searchFlags,
  2386.                                  Track *                searchTrack,
  2387.                                  TimeValue *            searchTime,
  2388.                                  long *                    searchOffset)                        THREEWORDINLINE(0x303C, 0x0207, 0xAAAA);
  2389.  
  2390. EXTERN_API( void )
  2391. GetPosterBox                    (Movie                     theMovie,
  2392.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x016F, 0xAAAA);
  2393.  
  2394. EXTERN_API( void )
  2395. SetPosterBox                    (Movie                     theMovie,
  2396.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x0170, 0xAAAA);
  2397.  
  2398. EXTERN_API( RgnHandle )
  2399. GetMovieSegmentDisplayBoundsRgn    (Movie                     theMovie,
  2400.                                  TimeValue                 time,
  2401.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016C, 0xAAAA);
  2402.  
  2403. EXTERN_API( RgnHandle )
  2404. GetTrackSegmentDisplayBoundsRgn    (Track                     theTrack,
  2405.                                  TimeValue                 time,
  2406.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016B, 0xAAAA);
  2407.  
  2408. EXTERN_API( void )
  2409. SetMovieCoverProcs                (Movie                     theMovie,
  2410.                                  MovieRgnCoverUPP         uncoverProc,
  2411.                                  MovieRgnCoverUPP         coverProc,
  2412.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x0179, 0xAAAA);
  2413.  
  2414. EXTERN_API( OSErr )
  2415. GetMovieCoverProcs                (Movie                     theMovie,
  2416.                                  MovieRgnCoverUPP *        uncoverProc,
  2417.                                  MovieRgnCoverUPP *        coverProc,
  2418.                                  long *                    refcon)                                THREEWORDINLINE(0x303C, 0x01DD, 0xAAAA);
  2419.  
  2420. EXTERN_API( ComponentResult )
  2421. GetTrackStatus                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0172, 0xAAAA);
  2422.  
  2423. EXTERN_API( ComponentResult )
  2424. GetMovieStatus                    (Movie                     theMovie,
  2425.                                  Track *                firstProblemTrack)                    THREEWORDINLINE(0x303C, 0x0173, 0xAAAA);
  2426.  
  2427. enum {
  2428.     kMovieLoadStateError        = -1L,
  2429.     kMovieLoadStateLoading        = 1000,
  2430.     kMovieLoadStatePlayable        = 10000,
  2431.     kMovieLoadStateComplete        = 100000L
  2432. };
  2433.  
  2434. EXTERN_API( long )
  2435. GetMovieLoadState                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0314, 0xAAAA);
  2436.  
  2437. /****
  2438.     Movie Controller support routines
  2439. ****/
  2440. EXTERN_API( ComponentInstance )
  2441. NewMovieController                (Movie                     theMovie,
  2442.                                  const Rect *            movieRect,
  2443.                                  long                     someFlags)                            THREEWORDINLINE(0x303C, 0x018A, 0xAAAA);
  2444.  
  2445. EXTERN_API( void )
  2446. DisposeMovieController            (ComponentInstance         mc)                                    THREEWORDINLINE(0x303C, 0x018B, 0xAAAA);
  2447.  
  2448. EXTERN_API( void )
  2449. ShowMovieInformation            (Movie                     theMovie,
  2450.                                  ModalFilterUPP         filterProc,
  2451.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x0209, 0xAAAA);
  2452.  
  2453.  
  2454. /*****
  2455.     Scrap routines
  2456. *****/
  2457. EXTERN_API( OSErr )
  2458. PutMovieOnScrap                    (Movie                     theMovie,
  2459.                                  long                     movieScrapFlags)                    THREEWORDINLINE(0x303C, 0x018C, 0xAAAA);
  2460.  
  2461. EXTERN_API( Movie )
  2462. NewMovieFromScrap                (long                     newMovieFlags)                        THREEWORDINLINE(0x303C, 0x018D, 0xAAAA);
  2463.  
  2464.  
  2465. /*****
  2466.     DataRef routines
  2467. *****/
  2468.  
  2469. EXTERN_API( OSErr )
  2470. GetMediaDataRef                    (Media                     theMedia,
  2471.                                  short                     index,
  2472.                                  Handle *                dataRef,
  2473.                                  OSType *                dataRefType,
  2474.                                  long *                    dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x0197, 0xAAAA);
  2475.  
  2476. EXTERN_API( OSErr )
  2477. SetMediaDataRef                    (Media                     theMedia,
  2478.                                  short                     index,
  2479.                                  Handle                 dataRef,
  2480.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C9, 0xAAAA);
  2481.  
  2482. EXTERN_API( OSErr )
  2483. SetMediaDataRefAttributes        (Media                     theMedia,
  2484.                                  short                     index,
  2485.                                  long                     dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x01CA, 0xAAAA);
  2486.  
  2487. EXTERN_API( OSErr )
  2488. AddMediaDataRef                    (Media                     theMedia,
  2489.                                  short *                index,
  2490.                                  Handle                 dataRef,
  2491.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0198, 0xAAAA);
  2492.  
  2493. EXTERN_API( OSErr )
  2494. GetMediaDataRefCount            (Media                     theMedia,
  2495.                                  short *                count)                                THREEWORDINLINE(0x303C, 0x0199, 0xAAAA);
  2496.  
  2497. EXTERN_API( OSErr )
  2498. QTNewAlias                        (const FSSpec *            fss,
  2499.                                  AliasHandle *            alias,
  2500.                                  Boolean                 minimal)                            THREEWORDINLINE(0x303C, 0x0201, 0xAAAA);
  2501.  
  2502. /*****
  2503.     Playback hint routines
  2504. *****/
  2505. EXTERN_API( void )
  2506. SetMoviePlayHints                (Movie                     theMovie,
  2507.                                  long                     flags,
  2508.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A1, 0xAAAA);
  2509.  
  2510. EXTERN_API( void )
  2511. SetMediaPlayHints                (Media                     theMedia,
  2512.                                  long                     flags,
  2513.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A2, 0xAAAA);
  2514.  
  2515. EXTERN_API( void )
  2516. GetMediaPlayHints                (Media                     theMedia,
  2517.                                  long *                    flags)                                THREEWORDINLINE(0x303C, 0x02CE, 0xAAAA);
  2518.  
  2519. /*****
  2520.     Load time track hints
  2521. *****/
  2522. enum {
  2523.     preloadAlways                = 1L << 0,
  2524.     preloadOnlyIfEnabled        = 1L << 1
  2525. };
  2526.  
  2527. EXTERN_API( void )
  2528. SetTrackLoadSettings            (Track                     theTrack,
  2529.                                  TimeValue                 preloadTime,
  2530.                                  TimeValue                 preloadDuration,
  2531.                                  long                     preloadFlags,
  2532.                                  long                     defaultHints)                        THREEWORDINLINE(0x303C, 0x01E3, 0xAAAA);
  2533.  
  2534. EXTERN_API( void )
  2535. GetTrackLoadSettings            (Track                     theTrack,
  2536.                                  TimeValue *            preloadTime,
  2537.                                  TimeValue *            preloadDuration,
  2538.                                  long *                    preloadFlags,
  2539.                                  long *                    defaultHints)                        THREEWORDINLINE(0x303C, 0x01E4, 0xAAAA);
  2540.  
  2541. /*****
  2542.     Big screen TV
  2543. *****/
  2544. enum {
  2545.     fullScreenHideCursor        = 1L << 0,
  2546.     fullScreenAllowEvents        = 1L << 1,
  2547.     fullScreenDontChangeMenuBar    = 1L << 2,
  2548.     fullScreenPreflightSize        = 1L << 3
  2549. };
  2550.  
  2551. EXTERN_API( OSErr )
  2552. BeginFullScreen                    (Ptr *                    restoreState,
  2553.                                  GDHandle                 whichGD,
  2554.                                  short *                desiredWidth,
  2555.                                  short *                desiredHeight,
  2556.                                  WindowPtr *            newWindow,
  2557.                                  RGBColor *                eraseColor,
  2558.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0233, 0xAAAA);
  2559.  
  2560. EXTERN_API( OSErr )
  2561. EndFullScreen                    (Ptr                     fullState,
  2562.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0234, 0xAAAA);
  2563.  
  2564. /*****
  2565.     Wired Actions
  2566. *****/
  2567. /* flags for MovieExecuteWiredActions*/
  2568. enum {
  2569.     movieExecuteWiredActionDontExecute = 1L << 0
  2570. };
  2571.  
  2572. EXTERN_API( OSErr )
  2573. AddMovieExecuteWiredActionsProc    (Movie                     theMovie,
  2574.                                  MovieExecuteWiredActionsUPP  proc,
  2575.                                  void *                    refCon)                                THREEWORDINLINE(0x303C, 0x0302, 0xAAAA);
  2576.  
  2577. EXTERN_API( OSErr )
  2578. RemoveMovieExecuteWiredActionsProc (Movie                 theMovie,
  2579.                                  MovieExecuteWiredActionsUPP  proc,
  2580.                                  void *                    refCon)                                THREEWORDINLINE(0x303C, 0x0303, 0xAAAA);
  2581.  
  2582. EXTERN_API( OSErr )
  2583. MovieExecuteWiredActions        (Movie                     theMovie,
  2584.                                  long                     flags,
  2585.                                  QTAtomContainer         actions)                            THREEWORDINLINE(0x303C, 0x0304, 0xAAAA);
  2586.  
  2587. /*****
  2588.     Sprite Toolbox
  2589. *****/
  2590. enum {
  2591.     kBackgroundSpriteLayerNum    = 32767
  2592. };
  2593.  
  2594. /*  Sprite Properties*/
  2595. enum {
  2596.     kSpritePropertyMatrix        = 1,
  2597.     kSpritePropertyImageDescription = 2,
  2598.     kSpritePropertyImageDataPtr    = 3,
  2599.     kSpritePropertyVisible        = 4,
  2600.     kSpritePropertyLayer        = 5,
  2601.     kSpritePropertyGraphicsMode    = 6,
  2602.     kSpritePropertyImageDataSize = 7,
  2603.     kSpritePropertyActionHandlingSpriteID = 8,
  2604.     kSpritePropertyImageIndex    = 100,
  2605.     kSpriteTrackPropertyBackgroundColor = 101,
  2606.     kSpriteTrackPropertyOffscreenBitDepth = 102,
  2607.     kSpriteTrackPropertySampleFormat = 103,
  2608.     kSpriteTrackPropertyScaleSpritesToScaleWorld = 104,
  2609.     kSpriteTrackPropertyHasActions = 105,
  2610.     kSpriteTrackPropertyVisible    = 106,
  2611.     kSpriteTrackPropertyQTIdleEventsFrequency = 107,
  2612.     kSpriteImagePropertyRegistrationPoint = 1000,
  2613.     kSpriteImagePropertyGroupID    = 1001
  2614. };
  2615.  
  2616. /* special value for kSpriteTrackPropertyQTIdleEventsFrequency (the default)*/
  2617. enum {
  2618.     kNoQTIdleEvents                = -1
  2619. };
  2620.  
  2621. /* flagsIn for SpriteWorldIdle*/
  2622. enum {
  2623.     kOnlyDrawToSpriteWorld        = 1L << 0,
  2624.     kSpriteWorldPreflight        = 1L << 1
  2625. };
  2626.  
  2627. /* flagsOut for SpriteWorldIdle*/
  2628. enum {
  2629.     kSpriteWorldDidDraw            = 1L << 0,
  2630.     kSpriteWorldNeedsToDraw        = 1L << 1
  2631. };
  2632.  
  2633. /* flags for sprite track sample format*/
  2634. enum {
  2635.     kKeyFrameAndSingleOverride    = 1L << 1,
  2636.     kKeyFrameAndAllOverrides    = 1L << 2
  2637. };
  2638.  
  2639. /* sprite world flags*/
  2640. enum {
  2641.     kScaleSpritesToScaleWorld    = 1L << 1,
  2642.     kSpriteWorldHighQuality        = 1L << 2,
  2643.     kSpriteWorldDontAutoInvalidate = 1L << 3,
  2644.     kSpriteWorldInvisible        = 1L << 4
  2645. };
  2646.  
  2647. EXTERN_API( OSErr )
  2648. NewSpriteWorld                    (SpriteWorld *            newSpriteWorld,
  2649.                                  GWorldPtr                 destination,
  2650.                                  GWorldPtr                 spriteLayer,
  2651.                                  RGBColor *                backgroundColor,
  2652.                                  GWorldPtr                 background)                            THREEWORDINLINE(0x303C, 0x0239, 0xAAAA);
  2653.  
  2654. EXTERN_API( void )
  2655. DisposeSpriteWorld                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023A, 0xAAAA);
  2656.  
  2657. EXTERN_API( OSErr )
  2658. SetSpriteWorldClip                (SpriteWorld             theSpriteWorld,
  2659.                                  RgnHandle                 clipRgn)                            THREEWORDINLINE(0x303C, 0x023B, 0xAAAA);
  2660.  
  2661. EXTERN_API( OSErr )
  2662. SetSpriteWorldMatrix            (SpriteWorld             theSpriteWorld,
  2663.                                  const MatrixRecord *    matrix)                                THREEWORDINLINE(0x303C, 0x023C, 0xAAAA);
  2664.  
  2665. EXTERN_API( OSErr )
  2666. SetSpriteWorldGraphicsMode        (SpriteWorld             theSpriteWorld,
  2667.                                  long                     mode,
  2668.                                  const RGBColor *        opColor)                            THREEWORDINLINE(0x303C, 0x02D9, 0xAAAA);
  2669.  
  2670. EXTERN_API( OSErr )
  2671. SpriteWorldIdle                    (SpriteWorld             theSpriteWorld,
  2672.                                  long                     flagsIn,
  2673.                                  long *                    flagsOut)                            THREEWORDINLINE(0x303C, 0x023D, 0xAAAA);
  2674.  
  2675. EXTERN_API( OSErr )
  2676. InvalidateSpriteWorld            (SpriteWorld             theSpriteWorld,
  2677.                                  Rect *                    invalidArea)                        THREEWORDINLINE(0x303C, 0x023E, 0xAAAA);
  2678.  
  2679. EXTERN_API( OSErr )
  2680. SpriteWorldHitTest                (SpriteWorld             theSpriteWorld,
  2681.                                  long                     flags,
  2682.                                  Point                     loc,
  2683.                                  Sprite *                spriteHit)                            THREEWORDINLINE(0x303C, 0x0246, 0xAAAA);
  2684.  
  2685. EXTERN_API( OSErr )
  2686. SpriteHitTest                    (Sprite                 theSprite,
  2687.                                  long                     flags,
  2688.                                  Point                     loc,
  2689.                                  Boolean *                wasHit)                                THREEWORDINLINE(0x303C, 0x0247, 0xAAAA);
  2690.  
  2691. EXTERN_API( void )
  2692. DisposeAllSprites                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023F, 0xAAAA);
  2693.  
  2694. EXTERN_API( OSErr )
  2695. SetSpriteWorldFlags                (SpriteWorld             spriteWorld,
  2696.                                  long                     flags,
  2697.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x02C2, 0xAAAA);
  2698.  
  2699. EXTERN_API( OSErr )
  2700. NewSprite                        (Sprite *                newSprite,
  2701.                                  SpriteWorld             itsSpriteWorld,
  2702.                                  ImageDescriptionHandle  idh,
  2703.                                  Ptr                     imageDataPtr,
  2704.                                  MatrixRecord *            matrix,
  2705.                                  Boolean                 visible,
  2706.                                  short                     layer)                                THREEWORDINLINE(0x303C, 0x0240, 0xAAAA);
  2707.  
  2708. EXTERN_API( void )
  2709. DisposeSprite                    (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0241, 0xAAAA);
  2710.  
  2711. EXTERN_API( void )
  2712. InvalidateSprite                (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0242, 0xAAAA);
  2713.  
  2714. EXTERN_API( OSErr )
  2715. SetSpriteProperty                (Sprite                 theSprite,
  2716.                                  long                     propertyType,
  2717.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0243, 0xAAAA);
  2718.  
  2719. EXTERN_API( OSErr )
  2720. GetSpriteProperty                (Sprite                 theSprite,
  2721.                                  long                     propertyType,
  2722.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0244, 0xAAAA);
  2723.  
  2724. /*****
  2725.     QT Atom Data Support
  2726. *****/
  2727. enum {
  2728.     kParentAtomIsContainer        = 0
  2729. };
  2730.  
  2731. /* create and dispose QTAtomContainer objects*/
  2732.  
  2733. EXTERN_API( OSErr )
  2734. QTNewAtomContainer                (QTAtomContainer *        atomData)                            THREEWORDINLINE(0x303C, 0x020C, 0xAAAA);
  2735.  
  2736. EXTERN_API( OSErr )
  2737. QTDisposeAtomContainer            (QTAtomContainer         atomData)                            THREEWORDINLINE(0x303C, 0x020D, 0xAAAA);
  2738.  
  2739. /* locating nested atoms within QTAtomContainer container*/
  2740.  
  2741. EXTERN_API( QTAtomType )
  2742. QTGetNextChildType                (QTAtomContainer         container,
  2743.                                  QTAtom                 parentAtom,
  2744.                                  QTAtomType             currentChildType)                    THREEWORDINLINE(0x303C, 0x020E, 0xAAAA);
  2745.  
  2746. EXTERN_API( short )
  2747. QTCountChildrenOfType            (QTAtomContainer         container,
  2748.                                  QTAtom                 parentAtom,
  2749.                                  QTAtomType             childType)                            THREEWORDINLINE(0x303C, 0x020F, 0xAAAA);
  2750.  
  2751. EXTERN_API( QTAtom )
  2752. QTFindChildByIndex                (QTAtomContainer         container,
  2753.                                  QTAtom                 parentAtom,
  2754.                                  QTAtomType             atomType,
  2755.                                  short                     index,
  2756.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0210, 0xAAAA);
  2757.  
  2758. EXTERN_API( QTAtom )
  2759. QTFindChildByID                    (QTAtomContainer         container,
  2760.                                  QTAtom                 parentAtom,
  2761.                                  QTAtomType             atomType,
  2762.                                  QTAtomID                 id,
  2763.                                  short *                index)                                THREEWORDINLINE(0x303C, 0x021D, 0xAAAA);
  2764.  
  2765. EXTERN_API( OSErr )
  2766. QTNextChildAnyType                (QTAtomContainer         container,
  2767.                                  QTAtom                 parentAtom,
  2768.                                  QTAtom                 currentChild,
  2769.                                  QTAtom *                nextChild)                            THREEWORDINLINE(0x303C, 0x0200, 0xAAAA);
  2770.  
  2771. /* set a leaf atom's data*/
  2772. EXTERN_API( OSErr )
  2773. QTSetAtomData                    (QTAtomContainer         container,
  2774.                                  QTAtom                 atom,
  2775.                                  long                     dataSize,
  2776.                                  void *                    atomData)                            THREEWORDINLINE(0x303C, 0x0211, 0xAAAA);
  2777.  
  2778. /* extracting data*/
  2779. EXTERN_API( OSErr )
  2780. QTCopyAtomDataToHandle            (QTAtomContainer         container,
  2781.                                  QTAtom                 atom,
  2782.                                  Handle                 targetHandle)                        THREEWORDINLINE(0x303C, 0x0212, 0xAAAA);
  2783.  
  2784. EXTERN_API( OSErr )
  2785. QTCopyAtomDataToPtr                (QTAtomContainer         container,
  2786.                                  QTAtom                 atom,
  2787.                                  Boolean                 sizeOrLessOK,
  2788.                                  long                     size,
  2789.                                  void *                    targetPtr,
  2790.                                  long *                    actualSize)                            THREEWORDINLINE(0x303C, 0x0213, 0xAAAA);
  2791.  
  2792. EXTERN_API( OSErr )
  2793. QTGetAtomTypeAndID                (QTAtomContainer         container,
  2794.                                  QTAtom                 atom,
  2795.                                  QTAtomType *            atomType,
  2796.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0232, 0xAAAA);
  2797.  
  2798. /* extract a copy of an atom and all of it's children, caller disposes*/
  2799. EXTERN_API( OSErr )
  2800. QTCopyAtom                        (QTAtomContainer         container,
  2801.                                  QTAtom                 atom,
  2802.                                  QTAtomContainer *        targetContainer)                    THREEWORDINLINE(0x303C, 0x0214, 0xAAAA);
  2803.  
  2804. /* obtaining direct reference to atom data*/
  2805. EXTERN_API( OSErr )
  2806. QTLockContainer                    (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0215, 0xAAAA);
  2807.  
  2808. EXTERN_API( OSErr )
  2809. QTGetAtomDataPtr                (QTAtomContainer         container,
  2810.                                  QTAtom                 atom,
  2811.                                  long *                    dataSize,
  2812.                                  Ptr *                    atomData)                            THREEWORDINLINE(0x303C, 0x0216, 0xAAAA);
  2813.  
  2814. EXTERN_API( OSErr )
  2815. QTUnlockContainer                (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0217, 0xAAAA);
  2816.  
  2817. /*
  2818.    building QTAtomContainer trees
  2819.    creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  2820.    used for Top-Down tree creation
  2821. */
  2822. EXTERN_API( OSErr )
  2823. QTInsertChild                    (QTAtomContainer         container,
  2824.                                  QTAtom                 parentAtom,
  2825.                                  QTAtomType             atomType,
  2826.                                  QTAtomID                 id,
  2827.                                  short                     index,
  2828.                                  long                     dataSize,
  2829.                                  void *                    data,
  2830.                                  QTAtom *                newAtom)                            THREEWORDINLINE(0x303C, 0x0218, 0xAAAA);
  2831.  
  2832. /* inserts children from childrenContainer as children of parentAtom*/
  2833. EXTERN_API( OSErr )
  2834. QTInsertChildren                (QTAtomContainer         container,
  2835.                                  QTAtom                 parentAtom,
  2836.                                  QTAtomContainer         childrenContainer)                    THREEWORDINLINE(0x303C, 0x0219, 0xAAAA);
  2837.  
  2838. /* destruction*/
  2839. EXTERN_API( OSErr )
  2840. QTRemoveAtom                    (QTAtomContainer         container,
  2841.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021A, 0xAAAA);
  2842.  
  2843. EXTERN_API( OSErr )
  2844. QTRemoveChildren                (QTAtomContainer         container,
  2845.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021B, 0xAAAA);
  2846.  
  2847. /* replacement must be same type as target*/
  2848. EXTERN_API( OSErr )
  2849. QTReplaceAtom                    (QTAtomContainer         targetContainer,
  2850.                                  QTAtom                 targetAtom,
  2851.                                  QTAtomContainer         replacementContainer,
  2852.                                  QTAtom                 replacementAtom)                    THREEWORDINLINE(0x303C, 0x021C, 0xAAAA);
  2853.  
  2854. EXTERN_API( OSErr )
  2855. QTSwapAtoms                        (QTAtomContainer         container,
  2856.                                  QTAtom                 atom1,
  2857.                                  QTAtom                 atom2)                                THREEWORDINLINE(0x303C, 0x01FF, 0xAAAA);
  2858.  
  2859. EXTERN_API( OSErr )
  2860. QTSetAtomID                        (QTAtomContainer         container,
  2861.                                  QTAtom                 atom,
  2862.                                  QTAtomID                 newID)                                THREEWORDINLINE(0x303C, 0x0231, 0xAAAA);
  2863.  
  2864. EXTERN_API( QTAtom )
  2865. QTGetAtomParent                    (QTAtomContainer         container,
  2866.                                  QTAtom                 childAtom)                            THREEWORDINLINE(0x303C, 0x02EF, 0xAAAA);
  2867.  
  2868. EXTERN_API( OSErr )
  2869. SetMediaPropertyAtom            (Media                     theMedia,
  2870.                                  QTAtomContainer         propertyAtom)                        THREEWORDINLINE(0x303C, 0x022E, 0xAAAA);
  2871.  
  2872. EXTERN_API( OSErr )
  2873. GetMediaPropertyAtom            (Media                     theMedia,
  2874.                                  QTAtomContainer *        propertyAtom)                        THREEWORDINLINE(0x303C, 0x022F, 0xAAAA);
  2875.  
  2876. /*****
  2877.     Tween Support
  2878. *****/
  2879. typedef struct TweenRecord                 TweenRecord;
  2880. typedef CALLBACK_API( ComponentResult , TweenerDataProcPtr )(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, UniversalProcPtr transferProc, void *refCon);
  2881. typedef STACK_UPP_TYPE(TweenerDataProcPtr)                         TweenerDataUPP;
  2882.  
  2883. struct TweenRecord {
  2884.     long                             version;
  2885.  
  2886.     QTAtomContainer                 container;
  2887.     QTAtom                             tweenAtom;
  2888.     QTAtom                             dataAtom;
  2889.     Fixed                             percent;
  2890.  
  2891.     TweenerDataUPP                     dataProc;
  2892.  
  2893.     void *                            private1;
  2894.     void *                            private2;
  2895. };
  2896.  
  2897.  
  2898. struct TweenV1Record {
  2899.     long                             version;
  2900.  
  2901.     QTAtomContainer                 container;
  2902.     QTAtom                             tweenAtom;
  2903.     QTAtom                             dataAtom;
  2904.     Fixed                             percent;
  2905.  
  2906.     TweenerDataUPP                     dataProc;
  2907.  
  2908.     void *                            private1;
  2909.     void *                            private2;
  2910.  
  2911.     Fract                             fractPercent;
  2912. };
  2913. typedef struct TweenV1Record            TweenV1Record;
  2914. EXTERN_API( OSErr )
  2915. QTNewTween                        (QTTweener *            tween,
  2916.                                  QTAtomContainer         container,
  2917.                                  QTAtom                 tweenAtom,
  2918.                                  TimeValue                 maxTime)                            THREEWORDINLINE(0x303C, 0x029D, 0xAAAA);
  2919.  
  2920. EXTERN_API( OSErr )
  2921. QTDisposeTween                    (QTTweener                 tween)                                THREEWORDINLINE(0x303C, 0x029F, 0xAAAA);
  2922.  
  2923. EXTERN_API( OSErr )
  2924. QTDoTween                        (QTTweener                 tween,
  2925.                                  TimeValue                 atTime,
  2926.                                  Handle                 result,
  2927.                                  long *                    resultSize,
  2928.                                  TweenerDataUPP         tweenDataProc,
  2929.                                  void *                    tweenDataRefCon)                    THREEWORDINLINE(0x303C, 0x029E, 0xAAAA);
  2930.  
  2931. /*****
  2932.     Sound Description Manipulations
  2933. *****/
  2934. EXTERN_API( OSErr )
  2935. AddSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2936.                                  Handle                 extension,
  2937.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02CF, 0xAAAA);
  2938.  
  2939. EXTERN_API( OSErr )
  2940. GetSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2941.                                  Handle *                extension,
  2942.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02D0, 0xAAAA);
  2943.  
  2944. EXTERN_API( OSErr )
  2945. RemoveSoundDescriptionExtension    (SoundDescriptionHandle  desc,
  2946.                                  OSType                 idType)                                THREEWORDINLINE(0x303C, 0x02D1, 0xAAAA);
  2947.  
  2948. /*****
  2949.     Preferences
  2950. *****/
  2951. EXTERN_API( OSErr )
  2952. GetQuickTimePreference            (OSType                 preferenceType,
  2953.                                  QTAtomContainer *        preferenceAtom)                        THREEWORDINLINE(0x303C, 0x02D4, 0xAAAA);
  2954.  
  2955. EXTERN_API( OSErr )
  2956. SetQuickTimePreference            (OSType                 preferenceType,
  2957.                                  QTAtomContainer         preferenceAtom)                        THREEWORDINLINE(0x303C, 0x02D5, 0xAAAA);
  2958.  
  2959. /*****
  2960.     Effects and dialog Support
  2961. *****/
  2962. /* atom types for entries in the effects list*/
  2963. enum {
  2964.     kEffectNameAtom                = FOUR_CHAR_CODE('name'),        /* name of effect */
  2965.     kEffectTypeAtom                = FOUR_CHAR_CODE('type'),        /* codec sub-type for effect */
  2966.     kEffectManufacturerAtom        = FOUR_CHAR_CODE('manu')        /* codec manufacturer for effect */
  2967. };
  2968.  
  2969.  
  2970. struct QTParamPreviewRecord {
  2971.     long                             sourceID;                    /* 1 based source identifier*/
  2972.     PicHandle                         sourcePicture;                /* picture for preview, must not dispose until dialog is disposed*/
  2973. };
  2974. typedef struct QTParamPreviewRecord        QTParamPreviewRecord;
  2975.  
  2976. typedef QTParamPreviewRecord *            QTParamPreviewPtr;
  2977.  
  2978. struct QTParamDialogEventRecord {
  2979.     EventRecord *                    theEvent;                    /* Event received by the dialog */
  2980.     DialogPtr                         whichDialog;                /* dialog that event was directed towards */
  2981.     short                             itemHit;                    /* dialog item which was hit */
  2982. };
  2983. typedef struct QTParamDialogEventRecord    QTParamDialogEventRecord;
  2984.  
  2985. typedef QTParamDialogEventRecord *        QTParamDialogEventPtr;
  2986.  
  2987. struct QTParamFetchPreviewRecord {
  2988.     GWorldPtr                         theWorld;                    /* the world into which to draw the preview */
  2989.     Fixed                             percentage;                    /* frame percentage (from 0.0 - 1.0) to be drawn */
  2990. };
  2991. typedef struct QTParamFetchPreviewRecord QTParamFetchPreviewRecord;
  2992.  
  2993. typedef QTParamFetchPreviewRecord *        QTParamFetchPreviewPtr;
  2994. enum {
  2995.     pdActionConfirmDialog        = 1,                            /* no param*/
  2996.     pdActionSetAppleMenu        = 2,                            /* param is MenuHandle*/
  2997.     pdActionSetEditMenu            = 3,                            /* param is MenuHandle*/
  2998.     pdActionGetDialogValues        = 4,                            /* param is QTAtomContainer*/
  2999.     pdActionSetPreviewUserItem    = 5,                            /* param is long*/
  3000.     pdActionSetPreviewPicture    = 6,                            /* param is QTParamPreviewPtr;*/
  3001.     pdActionSetColorPickerEventProc = 7,                        /* param is UserEventUPP*/
  3002.     pdActionSetDialogTitle        = 8,                            /* param is StringPtr */
  3003.     pdActionGetSubPanelMenu        = 9,                            /* param is MenuHandle* */
  3004.     pdActionActivateSubPanel    = 10,                            /* param is long */
  3005.     pdActionConductStopAlert    = 11,                            /* param is StringPtr */
  3006.     pdActionModelessCallback    = 12,                            /* param is QTParamDialogEventPtr */
  3007.     pdActionFetchPreview        = 13                            /* param is QTParamFetchPreviewPtr */
  3008. };
  3009.  
  3010. typedef long                             QTParameterDialog;
  3011. enum {
  3012.     elOptionsIncludeNoneInList    = 0x00000001                    /* "None" effect is included in list */
  3013. };
  3014.  
  3015. typedef long                             QTEffectListOptions;
  3016. enum {
  3017.     pdOptionsCollectOneValue    = 0x00000001,                    /* should collect a single value only*/
  3018.     pdOptionsAllowOptionalInterpolations = 0x00000002,            /* non-novice interpolation options are shown */
  3019.     pdOptionsModalDialogBox        = 0x00000004                    /* dialog box should be modal */
  3020. };
  3021.  
  3022. typedef long                             QTParameterDialogOptions;
  3023. enum {
  3024.     effectIsRealtime            = 0                                /* effect can be rendered in real time */
  3025. };
  3026.  
  3027. EXTERN_API( OSErr )
  3028. QTGetEffectsList                (QTAtomContainer *        returnedList,
  3029.                                  long                     minSources,
  3030.                                  long                     maxSources,
  3031.                                  QTEffectListOptions     getOptions)                            THREEWORDINLINE(0x303C, 0x02C9, 0xAAAA);
  3032.  
  3033. EXTERN_API( OSErr )
  3034. QTCreateStandardParameterDialog    (QTAtomContainer         effectList,
  3035.                                  QTAtomContainer         parameters,
  3036.                                  QTParameterDialogOptions  dialogOptions,
  3037.                                  QTParameterDialog *    createdDialog)                        THREEWORDINLINE(0x303C, 0x02CA, 0xAAAA);
  3038.  
  3039. EXTERN_API( OSErr )
  3040. QTIsStandardParameterDialogEvent (EventRecord *            pEvent,
  3041.                                  QTParameterDialog         createdDialog)                        THREEWORDINLINE(0x303C, 0x02CB, 0xAAAA);
  3042.  
  3043. EXTERN_API( OSErr )
  3044. QTDismissStandardParameterDialog (QTParameterDialog     createdDialog)                        THREEWORDINLINE(0x303C, 0x02CC, 0xAAAA);
  3045.  
  3046. EXTERN_API( OSErr )
  3047. QTStandardParameterDialogDoAction (QTParameterDialog     createdDialog,
  3048.                                  long                     action,
  3049.                                  void *                    params)                                THREEWORDINLINE(0x303C, 0x02CD, 0xAAAA);
  3050.  
  3051. EXTERN_API( OSErr )
  3052. QTGetEffectSpeed                (QTAtomContainer         parameters,
  3053.                                  Fixed *                pFPS)                                THREEWORDINLINE(0x303C, 0x02D2, 0xAAAA);
  3054.  
  3055. /*****
  3056.     Access Keys
  3057. *****/
  3058. enum {
  3059.     kAccessKeyAtomType            = FOUR_CHAR_CODE('acky')
  3060. };
  3061.  
  3062. enum {
  3063.     kAccessKeySystemFlag        = 1L << 0
  3064. };
  3065.  
  3066. EXTERN_API( OSErr )
  3067. QTGetAccessKeys                    (Str255                 accessKeyType,
  3068.                                  long                     flags,
  3069.                                  QTAtomContainer *        keys)                                THREEWORDINLINE(0x303C, 0x02B3, 0xAAAA);
  3070.  
  3071. EXTERN_API( OSErr )
  3072. QTRegisterAccessKey                (Str255                 accessKeyType,
  3073.                                  long                     flags,
  3074.                                  Handle                 accessKey)                            THREEWORDINLINE(0x303C, 0x02B4, 0xAAAA);
  3075.  
  3076. EXTERN_API( OSErr )
  3077. QTUnregisterAccessKey            (Str255                 accessKeyType,
  3078.                                  long                     flags,
  3079.                                  Handle                 accessKey)                            THREEWORDINLINE(0x303C, 0x02B5, 0xAAAA);
  3080.  
  3081. /*****
  3082.     Time table
  3083. *****/
  3084. EXTERN_API( OSErr )
  3085. MakeTrackTimeTable                (Track                     trackH,
  3086.                                  long **                offsets,
  3087.                                  TimeValue                 startTime,
  3088.                                  TimeValue                 endTime,
  3089.                                  TimeValue                 timeIncrement,
  3090.                                  short                     firstDataRefIndex,
  3091.                                  short                     lastDataRefIndex,
  3092.                                  long *                    retdataRefSkew)                        THREEWORDINLINE(0x303C, 0x02BE, 0xAAAA);
  3093.  
  3094. EXTERN_API( OSErr )
  3095. MakeMediaTimeTable                (Media                     theMedia,
  3096.                                  long **                offsets,
  3097.                                  TimeValue                 startTime,
  3098.                                  TimeValue                 endTime,
  3099.                                  TimeValue                 timeIncrement,
  3100.                                  short                     firstDataRefIndex,
  3101.                                  short                     lastDataRefIndex,
  3102.                                  long *                    retdataRefSkew)                        THREEWORDINLINE(0x303C, 0x02BF, 0xAAAA);
  3103.  
  3104. EXTERN_API( OSErr )
  3105. GetMaxLoadedTimeInMovie            (Movie                     theMovie,
  3106.                                  TimeValue *            time)                                THREEWORDINLINE(0x303C, 0x02C0, 0xAAAA);
  3107.  
  3108. EXTERN_API( OSErr )
  3109. QTMovieNeedsTimeTable            (Movie                     theMovie,
  3110.                                  Boolean *                needsTimeTable)                        THREEWORDINLINE(0x303C, 0x02C3, 0xAAAA);
  3111.  
  3112. EXTERN_API( OSErr )
  3113. QTGetDataRefMaxFileOffset        (Movie                     movieH,
  3114.                                  OSType                 dataRefType,
  3115.                                  Handle                 dataRef,
  3116.                                  long *                    offset)                                THREEWORDINLINE(0x303C, 0x02C6, 0xAAAA);
  3117.  
  3118.  
  3119. /*****
  3120.     Bandwidth management support
  3121. *****/
  3122. enum {
  3123.     ConnectionSpeedPrefsType    = FOUR_CHAR_CODE('cspd'),
  3124.     BandwidthManagementPrefsType = FOUR_CHAR_CODE('bwmg')
  3125. };
  3126.  
  3127.  
  3128.  
  3129. struct ConnectionSpeedPrefsRecord {
  3130.     long                             connectionSpeed;
  3131. };
  3132. typedef struct ConnectionSpeedPrefsRecord ConnectionSpeedPrefsRecord;
  3133.  
  3134. typedef ConnectionSpeedPrefsRecord *    ConnectionSpeedPrefsPtr;
  3135. typedef ConnectionSpeedPrefsPtr *        ConnectionSpeedPrefsHandle;
  3136.  
  3137. struct BandwidthManagementPrefsRecord {
  3138.     Boolean                         overrideConnectionSpeedForBandwidth;
  3139. };
  3140. typedef struct BandwidthManagementPrefsRecord BandwidthManagementPrefsRecord;
  3141.  
  3142. typedef BandwidthManagementPrefsRecord * BandwidthManagementPrefsPtr;
  3143. typedef BandwidthManagementPrefsPtr *    BandwidthManagementPrefsHandle;
  3144. enum {
  3145.     kQTIdlePriority                = 10,
  3146.     kQTNonRealTimePriority        = 20,
  3147.     kQTRealTimeSharedPriority    = 25,
  3148.     kQTRealTimePriority            = 30
  3149. };
  3150.  
  3151. enum {
  3152.     kQTBandwidthNotifyNeedToStop = 1L << 0,
  3153.     kQTBandwidthNotifyGoodToGo    = 1L << 1,
  3154.     kQTBandwidthChangeRequest    = 1L << 2,
  3155.     kQTBandwidthQueueRequest    = 1L << 3,
  3156.     kQTBandwidthScheduledRequest = 1L << 4,
  3157.     kQTBandwidthVoluntaryRelease = 1L << 5
  3158. };
  3159.  
  3160. typedef CALLBACK_API( OSErr , QTBandwidthNotificationProcPtr )(long flags, void *reserved, void *refcon);
  3161.  
  3162. struct QTScheduledBandwidthRecord {
  3163.     long                             recordSize;                    /* total number of bytes in QTScheduledBandwidthRecord*/
  3164.  
  3165.     long                             priority;
  3166.     long                             dataRate;
  3167.     CompTimeValue                     startTime;                    /* bandwidth usage start time*/
  3168.     CompTimeValue                     duration;                    /* duration of bandwidth usage (0 if unknown)*/
  3169.     CompTimeValue                     prerollDuration;            /* time for negotiation before startTime (0 if unknown)*/
  3170.     TimeScale                         scale;                        /* timescale of value/duration/prerollDuration fields*/
  3171.     TimeBase                         base;                        /* timebase*/
  3172. };
  3173. typedef struct QTScheduledBandwidthRecord QTScheduledBandwidthRecord;
  3174.  
  3175. typedef QTScheduledBandwidthRecord *    QTScheduledBandwidthPtr;
  3176. typedef QTScheduledBandwidthPtr *        QTScheduledBandwidthHandle;
  3177. typedef STACK_UPP_TYPE(QTBandwidthNotificationProcPtr)             QTBandwidthNotificationUPP;
  3178. EXTERN_API( OSErr )
  3179. QTBandwidthRequest                (long                     priority,
  3180.                                  QTBandwidthNotificationUPP  callback,
  3181.                                  const void *            refcon,
  3182.                                  QTBandwidthReference *    bwRef,
  3183.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02F5, 0xAAAA);
  3184.  
  3185. EXTERN_API( OSErr )
  3186. QTBandwidthRelease                (QTBandwidthReference     bwRef,
  3187.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02F6, 0xAAAA);
  3188.  
  3189. EXTERN_API( OSErr )
  3190. QTScheduledBandwidthRequest        (QTScheduledBandwidthPtr  scheduleRec,
  3191.                                  QTBandwidthNotificationUPP  notificationCallback,
  3192.                                  void *                    refcon,
  3193.                                  QTScheduledBandwidthReference * sbwRef,
  3194.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0310, 0xAAAA);
  3195.  
  3196. EXTERN_API( OSErr )
  3197. QTScheduledBandwidthRelease        (QTScheduledBandwidthReference  sbwRef,
  3198.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0311, 0xAAAA);
  3199.  
  3200. /*****
  3201.     QT International Text Atom Support
  3202. *****/
  3203. enum {
  3204.     kITextRemoveEverythingBut    = 0 << 1,
  3205.     kITextRemoveLeaveSuggestedAlternate = 1 << 1
  3206. };
  3207.  
  3208. enum {
  3209.     kITextAtomType                = FOUR_CHAR_CODE('itxt'),
  3210.     kITextStringAtomType        = FOUR_CHAR_CODE('text')
  3211. };
  3212.  
  3213. EXTERN_API( OSErr )
  3214. ITextAddString                    (QTAtomContainer         container,
  3215.                                  QTAtom                 parentAtom,
  3216.                                  RegionCode             theRegionCode,
  3217.                                  ConstStr255Param         theString)                            THREEWORDINLINE(0x303C, 0x027A, 0xAAAA);
  3218.  
  3219. EXTERN_API( OSErr )
  3220. ITextRemoveString                (QTAtomContainer         container,
  3221.                                  QTAtom                 parentAtom,
  3222.                                  RegionCode             theRegionCode,
  3223.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x027B, 0xAAAA);
  3224.  
  3225. EXTERN_API( OSErr )
  3226. ITextGetString                    (QTAtomContainer         container,
  3227.                                  QTAtom                 parentAtom,
  3228.                                  RegionCode             requestedRegion,
  3229.                                  RegionCode *            foundRegion,
  3230.                                  StringPtr                 theString)                            THREEWORDINLINE(0x303C, 0x027C, 0xAAAA);
  3231.  
  3232. EXTERN_API( OSErr )
  3233. QTTextToNativeText                (Handle                 theText,
  3234.                                  long                     encoding,
  3235.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x02DB, 0xAAAA);
  3236.  
  3237. /* QTParseTextHREF inContainer atoms*/
  3238. enum {
  3239.     kQTParseTextHREFText        = FOUR_CHAR_CODE('text'),        /* string*/
  3240.     kQTParseTextHREFBaseURL        = FOUR_CHAR_CODE('burl'),        /* string*/
  3241.     kQTParseTextHREFClickPoint    = FOUR_CHAR_CODE('clik'),        /* Point; if present, QTParseTextHREF will expand URLs to support server-side image maps*/
  3242.     kQTParseTextHREFUseAltDelim    = FOUR_CHAR_CODE('altd'),        /* boolean; if no kQTParseTextHREFDelimiter, delim is ':'*/
  3243.     kQTParseTextHREFDelimiter    = FOUR_CHAR_CODE('delm'),        /* character*/
  3244.     kQTParseTextHREFRecomposeHREF = FOUR_CHAR_CODE('rhrf')        /* Boolean; if true, QTParseTextHREF returns recomposed HREF with URL expanded as appropriate*/
  3245. };
  3246.  
  3247. /* QTParseTextHREF outContainer atoms*/
  3248. enum {
  3249.     kQTParseTextHREFURL            = FOUR_CHAR_CODE('url '),        /* string*/
  3250.     kQTParseTextHREFTarget        = FOUR_CHAR_CODE('targ'),        /* string*/
  3251.     kQTParseTextHREFIsAutoHREF    = FOUR_CHAR_CODE('auto'),        /* Boolean*/
  3252.     kQTParseTextHREFIsServerMap    = FOUR_CHAR_CODE('smap'),        /* boolean*/
  3253.     kQTParseTextHREFHREF        = FOUR_CHAR_CODE('href')        /* string; recomposed HREF with URL expanded as appropriate, suitable for mcActionLinkToURL*/
  3254. };
  3255.  
  3256. EXTERN_API( OSErr )
  3257. QTParseTextHREF                    (char *                    href,
  3258.                                  SInt32                 hrefLen,
  3259.                                  QTAtomContainer         inContainer,
  3260.                                  QTAtomContainer *        outContainer)                        THREEWORDINLINE(0x303C, 0x0319, 0xAAAA);
  3261.  
  3262. /*************************
  3263. * track reference types
  3264. **************************/
  3265. enum {
  3266.     kTrackReferenceChapterList    = FOUR_CHAR_CODE('chap'),
  3267.     kTrackReferenceTimeCode        = FOUR_CHAR_CODE('tmcd'),
  3268.     kTrackReferenceModifier        = FOUR_CHAR_CODE('ssrc')
  3269. };
  3270.  
  3271. /*************************
  3272. * modifier track types
  3273. **************************/
  3274. enum {
  3275.     kTrackModifierInput            = 0x696E,                        /* is really 'in'*/
  3276.     kTrackModifierType            = 0x7479,                        /* is really 'ty'*/
  3277.     kTrackModifierReference        = FOUR_CHAR_CODE('ssrc'),
  3278.     kTrackModifierObjectID        = FOUR_CHAR_CODE('obid'),
  3279.     kTrackModifierInputName        = FOUR_CHAR_CODE('name')
  3280. };
  3281.  
  3282. enum {
  3283.     kInputMapSubInputID            = FOUR_CHAR_CODE('subi')
  3284. };
  3285.  
  3286. enum {
  3287.     kTrackModifierTypeMatrix    = 1,
  3288.     kTrackModifierTypeClip        = 2,
  3289.     kTrackModifierTypeGraphicsMode = 5,
  3290.     kTrackModifierTypeVolume    = 3,
  3291.     kTrackModifierTypeBalance    = 4,
  3292.     kTrackModifierTypeImage        = FOUR_CHAR_CODE('vide'),        /* was kTrackModifierTypeSpriteImage*/
  3293.     kTrackModifierObjectMatrix    = 6,
  3294.     kTrackModifierObjectGraphicsMode = 7,
  3295.     kTrackModifierType3d4x4Matrix = 8,
  3296.     kTrackModifierCameraData    = 9,
  3297.     kTrackModifierSoundLocalizationData = 10,
  3298.     kTrackModifierObjectImageIndex = 11,
  3299.     kTrackModifierObjectLayer    = 12,
  3300.     kTrackModifierObjectVisible    = 13,
  3301.     kTrackModifierAngleAspectCamera = 14,
  3302.     kTrackModifierPanAngle        = FOUR_CHAR_CODE('pan '),
  3303.     kTrackModifierTiltAngle        = FOUR_CHAR_CODE('tilt'),
  3304.     kTrackModifierVerticalFieldOfViewAngle = FOUR_CHAR_CODE('fov '),
  3305.     kTrackModifierObjectQTEventSend = FOUR_CHAR_CODE('evnt')
  3306. };
  3307.  
  3308.  
  3309. struct ModifierTrackGraphicsModeRecord {
  3310.     long                             graphicsMode;
  3311.     RGBColor                         opColor;
  3312. };
  3313. typedef struct ModifierTrackGraphicsModeRecord ModifierTrackGraphicsModeRecord;
  3314.  
  3315. /*************************
  3316. * tween track types
  3317. **************************/
  3318. enum {
  3319.     kTweenTypeShort                = 1,
  3320.     kTweenTypeLong                = 2,
  3321.     kTweenTypeFixed                = 3,
  3322.     kTweenTypePoint                = 4,
  3323.     kTweenTypeQDRect            = 5,
  3324.     kTweenTypeQDRegion            = 6,
  3325.     kTweenTypeMatrix            = 7,
  3326.     kTweenTypeRGBColor            = 8,
  3327.     kTweenTypeGraphicsModeWithRGBColor = 9,
  3328.     kTweenTypeQTFloatSingle        = 10,
  3329.     kTweenTypeQTFloatDouble        = 11,
  3330.     kTweenTypeFixedPoint        = 12,
  3331.     kTweenType3dScale            = FOUR_CHAR_CODE('3sca'),
  3332.     kTweenType3dTranslate        = FOUR_CHAR_CODE('3tra'),
  3333.     kTweenType3dRotate            = FOUR_CHAR_CODE('3rot'),
  3334.     kTweenType3dRotateAboutPoint = FOUR_CHAR_CODE('3rap'),
  3335.     kTweenType3dRotateAboutAxis    = FOUR_CHAR_CODE('3rax'),
  3336.     kTweenType3dRotateAboutVector = FOUR_CHAR_CODE('3rvc'),
  3337.     kTweenType3dQuaternion        = FOUR_CHAR_CODE('3qua'),
  3338.     kTweenType3dMatrix            = FOUR_CHAR_CODE('3mat'),
  3339.     kTweenType3dCameraData        = FOUR_CHAR_CODE('3cam'),
  3340.     kTweenType3dAngleAspectCameraData = FOUR_CHAR_CODE('3caa'),
  3341.     kTweenType3dSoundLocalizationData = FOUR_CHAR_CODE('3slc'),
  3342.     kTweenTypePathToMatrixTranslation = FOUR_CHAR_CODE('gxmt'),
  3343.     kTweenTypePathToMatrixRotation = FOUR_CHAR_CODE('gxpr'),
  3344.     kTweenTypePathToMatrixTranslationAndRotation = FOUR_CHAR_CODE('gxmr'),
  3345.     kTweenTypePathToFixedPoint    = FOUR_CHAR_CODE('gxfp'),
  3346.     kTweenTypePathXtoY            = FOUR_CHAR_CODE('gxxy'),
  3347.     kTweenTypePathYtoX            = FOUR_CHAR_CODE('gxyx'),
  3348.     kTweenTypeAtomList            = FOUR_CHAR_CODE('atom'),
  3349.     kTweenTypePolygon            = FOUR_CHAR_CODE('poly'),
  3350.     kTweenTypeMultiMatrix        = FOUR_CHAR_CODE('mulm'),
  3351.     kTweenTypeSpin                = FOUR_CHAR_CODE('spin'),
  3352.     kTweenType3dMatrixNonLinear    = FOUR_CHAR_CODE('3nlr'),
  3353.     kTweenType3dVRObject        = FOUR_CHAR_CODE('3vro')
  3354. };
  3355.  
  3356. enum {
  3357.     kTweenEntry                    = FOUR_CHAR_CODE('twen'),
  3358.     kTweenData                    = FOUR_CHAR_CODE('data'),
  3359.     kTweenType                    = FOUR_CHAR_CODE('twnt'),
  3360.     kTweenStartOffset            = FOUR_CHAR_CODE('twst'),
  3361.     kTweenDuration                = FOUR_CHAR_CODE('twdu'),
  3362.     kTweenFlags                    = FOUR_CHAR_CODE('flag'),
  3363.     kTweenOutputMin                = FOUR_CHAR_CODE('omin'),
  3364.     kTweenOutputMax                = FOUR_CHAR_CODE('omax'),
  3365.     kTweenSequenceElement        = FOUR_CHAR_CODE('seqe'),
  3366.     kTween3dInitialCondition    = FOUR_CHAR_CODE('icnd'),
  3367.     kTweenInterpolationID        = FOUR_CHAR_CODE('intr'),
  3368.     kTweenRegionData            = FOUR_CHAR_CODE('qdrg'),
  3369.     kTweenPictureData            = FOUR_CHAR_CODE('PICT'),
  3370.     kListElementType            = FOUR_CHAR_CODE('type'),
  3371.     kListElementDataType        = FOUR_CHAR_CODE('daty'),
  3372.     kNameAtom                    = FOUR_CHAR_CODE('name'),
  3373.     kInitialRotationAtom        = FOUR_CHAR_CODE('inro'),
  3374.     kNonLinearTweenHeader        = FOUR_CHAR_CODE('nlth')
  3375. };
  3376.  
  3377. /* kTweenFlags*/
  3378. enum {
  3379.     kTweenReturnDelta            = 1L << 0
  3380. };
  3381.  
  3382.  
  3383. struct TweenSequenceEntryRecord {
  3384.     Fixed                             endPercent;
  3385.     QTAtomID                         tweenAtomID;
  3386.     QTAtomID                         dataAtomID;
  3387. };
  3388. typedef struct TweenSequenceEntryRecord    TweenSequenceEntryRecord;
  3389.  
  3390. #ifdef __QD3D__
  3391.  
  3392. struct ThreeDeeVRObjectSample {
  3393.     long            rows;  
  3394.     long            columns;
  3395.     TQ3Matrix4x4      calib1;
  3396.     TQ3Matrix4x4      calib2;
  3397.     long            reserved1;
  3398.     long            reserved2;
  3399. };
  3400.  
  3401. typedef struct ThreeDeeVRObjectSample ThreeDeeVRObjectSample;
  3402.  
  3403. struct ThreeDeeNonLinearSample {
  3404.     float            DurFromLastSample;  // 0 to 1
  3405.     TQ3Matrix4x4      matrix;
  3406. };
  3407. typedef struct ThreeDeeNonLinearSample ThreeDeeNonLinearSample;
  3408.  
  3409. struct ThreeDeeNonLinearTweenHeaderAtom {
  3410.     long    number;
  3411.     long    dataSize;
  3412.     float    tensionFactor;  // default is 0
  3413.     long    reserved1;
  3414.     long    reserved2;
  3415. };
  3416. typedef struct ThreeDeeNonLinearTweenHeaderAtom ThreeDeeNonLinearTweenHeaderAtom;
  3417.  
  3418.  
  3419. #endif
  3420.  
  3421.  
  3422.  
  3423. #if OLDROUTINENAMES
  3424.  
  3425. /*************************
  3426. * Video Media routines
  3427. **************************/
  3428.  
  3429. #define GetVideoMediaGraphicsMode        MediaGetGraphicsMode
  3430. #define SetVideoMediaGraphicsMode        MediaSetGraphicsMode
  3431.  
  3432. // use these two routines at your own peril
  3433. #define ResetVideoMediaStatistics        VideoMediaResetStatistics
  3434. #define GetVideoMediaStatistics            VideoMediaGetStatistics
  3435.  
  3436. /*************************
  3437. * Sound Media routines
  3438. **************************/
  3439.  
  3440. #define GetSoundMediaBalance            MediaGetSoundBalance
  3441. #define SetSoundMediaBalance            MediaSetSoundBalance
  3442.  
  3443. /*************************
  3444. * Text Media routines
  3445. **************************/
  3446.  
  3447. #define SetTextProc            TextMediaSetTextProc
  3448. #define AddTextSample        TextMediaAddTextSample
  3449. #define AddTESample            TextMediaAddTESample
  3450. #define AddHiliteSample        TextMediaAddHiliteSample
  3451. #define FindNextText        TextMediaFindNextText
  3452. #define HiliteTextSample    TextMediaHiliteTextSample
  3453. #define SetTextSampleData    TextMediaSetTextSampleData
  3454. #define DrawRaw                TextMediaDrawRaw
  3455. #define RawSetup            TextMediaRawSetup
  3456. #define RawIdle                TextMediaRawIdle
  3457. #define SetTextProperty        TextMediaSetTextProperty
  3458.  
  3459. /*************************
  3460. * Sprite Media routines
  3461. **************************/
  3462.  
  3463. #define SetSpriteMediaSpriteProperty    SpriteMediaSetProperty
  3464. #define GetSpriteMediaSpriteProperty    SpriteMediaGetProperty
  3465. #define HitTestSpriteMedia                SpriteMediaHitTestSprites
  3466. #define CountSpriteMediaSprites            SpriteMediaCountSprites
  3467. #define CountSpriteMediaImages            SpriteMediaCountImages
  3468. #define GetSpriteMediaIndImageDescription    SpriteMediaGetIndImageDescription
  3469. #define GetDisplayedSampleNumber        SpriteMediaGetDisplayedSampleNumber
  3470. #endif /* OLDROUTINENAMES */
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477. /*************************
  3478. * Video Media routines
  3479. **************************/
  3480.  
  3481.  
  3482. enum {
  3483.     videoFlagDontLeanAhead        = 1L << 0
  3484. };
  3485.  
  3486.  
  3487.  
  3488.  
  3489. /* use these five routines at your own peril*/
  3490. EXTERN_API( ComponentResult )
  3491. VideoMediaResetStatistics        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0105, 0x7000, 0xA82A);
  3492.  
  3493. EXTERN_API( ComponentResult )
  3494. VideoMediaGetStatistics            (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  3495.  
  3496.  
  3497. EXTERN_API( ComponentResult )
  3498. VideoMediaGetStallCount            (MediaHandler             mh,
  3499.                                  unsigned long *        stalls)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
  3500.  
  3501.  
  3502. EXTERN_API( ComponentResult )
  3503. VideoMediaSetCodecParameter        (MediaHandler             mh,
  3504.                                  CodecType                 cType,
  3505.                                  OSType                 parameterID,
  3506.                                  long                     parameterChangeSeed,
  3507.                                  void *                    dataPtr,
  3508.                                  long                     dataSize)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x010F, 0x7000, 0xA82A);
  3509.  
  3510. EXTERN_API( ComponentResult )
  3511. VideoMediaGetCodecParameter        (MediaHandler             mh,
  3512.                                  CodecType                 cType,
  3513.                                  OSType                 parameterID,
  3514.                                  Handle                 outParameterData)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x0110, 0x7000, 0xA82A);
  3515.  
  3516.  
  3517.  
  3518.  
  3519. /*************************
  3520. * Text Media routines
  3521. **************************/
  3522.  
  3523.  
  3524.  
  3525. /* Return displayFlags for TextProc */
  3526. enum {
  3527.     txtProcDefaultDisplay        = 0,                            /*    Use the media's default*/
  3528.     txtProcDontDisplay            = 1,                            /*    Don't display the text*/
  3529.     txtProcDoDisplay            = 2                                /*    Do display the text*/
  3530. };
  3531.  
  3532. EXTERN_API( ComponentResult )
  3533. TextMediaSetTextProc            (MediaHandler             mh,
  3534.                                  TextMediaUPP             TextProc,
  3535.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  3536.  
  3537. EXTERN_API( ComponentResult )
  3538. TextMediaAddTextSample            (MediaHandler             mh,
  3539.                                  Ptr                     text,
  3540.                                  unsigned long             size,
  3541.                                  short                     fontNumber,
  3542.                                  short                     fontSize,
  3543.                                  Style                     textFace,
  3544.                                  RGBColor *                textColor,
  3545.                                  RGBColor *                backColor,
  3546.                                  short                     textJustification,
  3547.                                  Rect *                    textBox,
  3548.                                  long                     displayFlags,
  3549.                                  TimeValue                 scrollDelay,
  3550.                                  short                     hiliteStart,
  3551.                                  short                     hiliteEnd,
  3552.                                  RGBColor *                rgbHiliteColor,
  3553.                                  TimeValue                 duration,
  3554.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0034, 0x0102, 0x7000, 0xA82A);
  3555.  
  3556. EXTERN_API( ComponentResult )
  3557. TextMediaAddTESample            (MediaHandler             mh,
  3558.                                  TEHandle                 hTE,
  3559.                                  RGBColor *                backColor,
  3560.                                  short                     textJustification,
  3561.                                  Rect *                    textBox,
  3562.                                  long                     displayFlags,
  3563.                                  TimeValue                 scrollDelay,
  3564.                                  short                     hiliteStart,
  3565.                                  short                     hiliteEnd,
  3566.                                  RGBColor *                rgbHiliteColor,
  3567.                                  TimeValue                 duration,
  3568.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0026, 0x0103, 0x7000, 0xA82A);
  3569.  
  3570. EXTERN_API( ComponentResult )
  3571. TextMediaAddHiliteSample        (MediaHandler             mh,
  3572.                                  short                     hiliteStart,
  3573.                                  short                     hiliteEnd,
  3574.                                  RGBColor *                rgbHiliteColor,
  3575.                                  TimeValue                 duration,
  3576.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  3577.  
  3578. EXTERN_API( ComponentResult )
  3579. TextMediaDrawRaw                (MediaHandler             mh,
  3580.                                  GWorldPtr                 gw,
  3581.                                  GDHandle                 gd,
  3582.                                  void *                    data,
  3583.                                  long                     dataSize,
  3584.                                  TextDescriptionHandle     tdh)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0109, 0x7000, 0xA82A);
  3585.  
  3586. EXTERN_API( ComponentResult )
  3587. TextMediaSetTextProperty        (MediaHandler             mh,
  3588.                                  TimeValue                 atMediaTime,
  3589.                                  long                     propertyType,
  3590.                                  void *                    data,
  3591.                                  long                     dataSize)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x010A, 0x7000, 0xA82A);
  3592.  
  3593. EXTERN_API( ComponentResult )
  3594. TextMediaRawSetup                (MediaHandler             mh,
  3595.                                  GWorldPtr                 gw,
  3596.                                  GDHandle                 gd,
  3597.                                  void *                    data,
  3598.                                  long                     dataSize,
  3599.                                  TextDescriptionHandle     tdh,
  3600.                                  TimeValue                 sampleDuration)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x010B, 0x7000, 0xA82A);
  3601.  
  3602. EXTERN_API( ComponentResult )
  3603. TextMediaRawIdle                (MediaHandler             mh,
  3604.                                  GWorldPtr                 gw,
  3605.                                  GDHandle                 gd,
  3606.                                  TimeValue                 sampleTime,
  3607.                                  long                     flagsIn,
  3608.                                  long *                    flagsOut)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x010C, 0x7000, 0xA82A);
  3609.  
  3610.  
  3611. enum {
  3612.     findTextEdgeOK                = 1 << 0,                        /* Okay to find text at specified sample time*/
  3613.     findTextCaseSensitive        = 1 << 1,                        /* Case sensitive search*/
  3614.     findTextReverseSearch        = 1 << 2,                        /* Search from sampleTime backwards*/
  3615.     findTextWrapAround            = 1 << 3,                        /* Wrap search when beginning or end of movie is hit*/
  3616.     findTextUseOffset            = 1 << 4                        /* Begin search at the given character offset into sample rather than edge*/
  3617. };
  3618.  
  3619. EXTERN_API( ComponentResult )
  3620. TextMediaFindNextText            (MediaHandler             mh,
  3621.                                  Ptr                     text,
  3622.                                  long                     size,
  3623.                                  short                     findFlags,
  3624.                                  TimeValue                 startTime,
  3625.                                  TimeValue *            foundTime,
  3626.                                  TimeValue *            foundDuration,
  3627.                                  long *                    offset)                                FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  3628.  
  3629. EXTERN_API( ComponentResult )
  3630. TextMediaHiliteTextSample        (MediaHandler             mh,
  3631.                                  TimeValue                 sampleTime,
  3632.                                  short                     hiliteStart,
  3633.                                  short                     hiliteEnd,
  3634.                                  RGBColor *                rgbHiliteColor)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0106, 0x7000, 0xA82A);
  3635.  
  3636. enum {
  3637.     dropShadowOffsetType        = FOUR_CHAR_CODE('drpo'),
  3638.     dropShadowTranslucencyType    = FOUR_CHAR_CODE('drpt')
  3639. };
  3640.  
  3641. EXTERN_API( ComponentResult )
  3642. TextMediaSetTextSampleData        (MediaHandler             mh,
  3643.                                  void *                    data,
  3644.                                  OSType                 dataType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650. /*************************
  3651. * Sprite Media routines
  3652. **************************/
  3653. /* flags for sprite hit test routines */
  3654. enum {
  3655.     spriteHitTestBounds            = 1L << 0,                        /*    point must only be within sprite's bounding box*/
  3656.     spriteHitTestImage            = 1L << 1,                        /*  point must be within the shape of the sprite's image*/
  3657.     spriteHitTestInvisibleSprites = 1L << 2,                    /*  invisible sprites may be hit tested*/
  3658.     spriteHitTestIsClick        = 1L << 3,                        /*  for codecs that want mouse events*/
  3659.     spriteHitTestLocInDisplayCoordinates = 1L << 4                /*    set if you want to pass a display coordiate point to SpriteHitTest*/
  3660. };
  3661.  
  3662. /* atom types for sprite media */
  3663. enum {
  3664.     kSpriteAtomType                = FOUR_CHAR_CODE('sprt'),
  3665.     kSpriteImagesContainerAtomType = FOUR_CHAR_CODE('imct'),
  3666.     kSpriteImageAtomType        = FOUR_CHAR_CODE('imag'),
  3667.     kSpriteImageDataAtomType    = FOUR_CHAR_CODE('imda'),
  3668.     kSpriteImageDataRefAtomType    = FOUR_CHAR_CODE('imre'),
  3669.     kSpriteImageDataRefTypeAtomType = FOUR_CHAR_CODE('imrt'),
  3670.     kSpriteImageGroupIDAtomType    = FOUR_CHAR_CODE('imgr'),
  3671.     kSpriteImageRegistrationAtomType = FOUR_CHAR_CODE('imrg'),
  3672.     kSpriteImageDefaultImageIndexAtomType = FOUR_CHAR_CODE('defi'),
  3673.     kSpriteSharedDataAtomType    = FOUR_CHAR_CODE('dflt'),
  3674.     kSpriteNameAtomType            = FOUR_CHAR_CODE('name'),
  3675.     kSpriteImageNameAtomType    = FOUR_CHAR_CODE('name'),
  3676.     kSpriteUsesImageIDsAtomType    = FOUR_CHAR_CODE('uses'),        /* leaf data is an array of QTAtomID's, one per image used*/
  3677.     kSpriteBehaviorsAtomType    = FOUR_CHAR_CODE('beha'),
  3678.     kSpriteImageBehaviorAtomType = FOUR_CHAR_CODE('imag'),
  3679.     kSpriteCursorBehaviorAtomType = FOUR_CHAR_CODE('crsr'),
  3680.     kSpriteStatusStringsBehaviorAtomType = FOUR_CHAR_CODE('sstr'),
  3681.     kSpriteVariablesContainerAtomType = FOUR_CHAR_CODE('vars'),
  3682.     kSpriteStringVariableAtomType = FOUR_CHAR_CODE('strv'),
  3683.     kSpriteFloatingPointVariableAtomType = FOUR_CHAR_CODE('flov')
  3684. };
  3685.  
  3686.  
  3687. struct QTRuntimeSpriteDescStruct {
  3688.     long                             version;                    /* set to zero*/
  3689.     QTAtomID                         spriteID;
  3690.     short                             imageIndex;
  3691.     MatrixRecord                     matrix;
  3692.     short                             visible;
  3693.     short                             layer;
  3694.     ModifierTrackGraphicsModeRecord  graphicsMode;
  3695.     QTAtomID                         actionHandlingSpriteID;
  3696. };
  3697. typedef struct QTRuntimeSpriteDescStruct QTRuntimeSpriteDescStruct;
  3698.  
  3699. typedef QTRuntimeSpriteDescStruct *        QTRuntimeSpriteDescPtr;
  3700. /*
  3701.    when filling in QTSpriteButtonBehaviorStruct values -1 may be used to indicate that
  3702.    the state transition does not change the property
  3703. */
  3704.  
  3705. struct QTSpriteButtonBehaviorStruct {
  3706.     QTAtomID                         notOverNotPressedStateID;
  3707.     QTAtomID                         overNotPressedStateID;
  3708.     QTAtomID                         overPressedStateID;
  3709.     QTAtomID                         notOverPressedStateID;
  3710. };
  3711. typedef struct QTSpriteButtonBehaviorStruct QTSpriteButtonBehaviorStruct;
  3712.  
  3713. typedef QTSpriteButtonBehaviorStruct *    QTSpriteButtonBehaviorPtr;
  3714. EXTERN_API( ComponentResult )
  3715. SpriteMediaSetProperty            (MediaHandler             mh,
  3716.                                  short                     spriteIndex,
  3717.                                  long                     propertyType,
  3718.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0101, 0x7000, 0xA82A);
  3719.  
  3720. EXTERN_API( ComponentResult )
  3721. SpriteMediaGetProperty            (MediaHandler             mh,
  3722.                                  short                     spriteIndex,
  3723.                                  long                     propertyType,
  3724.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0102, 0x7000, 0xA82A);
  3725.  
  3726. EXTERN_API( ComponentResult )
  3727. SpriteMediaHitTestSprites        (MediaHandler             mh,
  3728.                                  long                     flags,
  3729.                                  Point                     loc,
  3730.                                  short *                spriteHitIndex)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  3731.  
  3732. EXTERN_API( ComponentResult )
  3733. SpriteMediaCountSprites            (MediaHandler             mh,
  3734.                                  short *                numSprites)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  3735.  
  3736. EXTERN_API( ComponentResult )
  3737. SpriteMediaCountImages            (MediaHandler             mh,
  3738.                                  short *                numImages)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  3739.  
  3740. EXTERN_API( ComponentResult )
  3741. SpriteMediaGetIndImageDescription (MediaHandler         mh,
  3742.                                  short                     imageIndex,
  3743.                                  ImageDescriptionHandle  imageDescription)                    FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A);
  3744.  
  3745. EXTERN_API( ComponentResult )
  3746. SpriteMediaGetDisplayedSampleNumber (MediaHandler         mh,
  3747.                                  long *                    sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  3748.  
  3749. EXTERN_API( ComponentResult )
  3750. SpriteMediaGetSpriteName        (MediaHandler             mh,
  3751.                                  QTAtomID                 spriteID,
  3752.                                  Str255                 spriteName)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  3753.  
  3754. EXTERN_API( ComponentResult )
  3755. SpriteMediaGetImageName            (MediaHandler             mh,
  3756.                                  short                     imageIndex,
  3757.                                  Str255                 imageName)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0109, 0x7000, 0xA82A);
  3758.  
  3759. EXTERN_API( ComponentResult )
  3760. SpriteMediaSetSpriteProperty    (MediaHandler             mh,
  3761.                                  QTAtomID                 spriteID,
  3762.                                  long                     propertyType,
  3763.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
  3764.  
  3765. EXTERN_API( ComponentResult )
  3766. SpriteMediaGetSpriteProperty    (MediaHandler             mh,
  3767.                                  QTAtomID                 spriteID,
  3768.                                  long                     propertyType,
  3769.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010B, 0x7000, 0xA82A);
  3770.  
  3771. EXTERN_API( ComponentResult )
  3772. SpriteMediaHitTestAllSprites    (MediaHandler             mh,
  3773.                                  long                     flags,
  3774.                                  Point                     loc,
  3775.                                  QTAtomID *                spriteHitID)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
  3776.  
  3777. EXTERN_API( ComponentResult )
  3778. SpriteMediaHitTestOneSprite        (MediaHandler             mh,
  3779.                                  QTAtomID                 spriteID,
  3780.                                  long                     flags,
  3781.                                  Point                     loc,
  3782.                                  Boolean *                wasHit)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
  3783.  
  3784. EXTERN_API( ComponentResult )
  3785. SpriteMediaSpriteIndexToID        (MediaHandler             mh,
  3786.                                  short                     spriteIndex,
  3787.                                  QTAtomID *                spriteID)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x010E, 0x7000, 0xA82A);
  3788.  
  3789. EXTERN_API( ComponentResult )
  3790. SpriteMediaSpriteIDToIndex        (MediaHandler             mh,
  3791.                                  QTAtomID                 spriteID,
  3792.                                  short *                spriteIndex)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x010F, 0x7000, 0xA82A);
  3793.  
  3794. EXTERN_API( ComponentResult )
  3795. SpriteMediaGetSpriteActionsForQTEvent (MediaHandler     mh,
  3796.                                  QTEventRecordPtr         event,
  3797.                                  QTAtomID                 spriteID,
  3798.                                  QTAtomContainer *        container,
  3799.                                  QTAtom *                atom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0110, 0x7000, 0xA82A);
  3800.  
  3801. EXTERN_API( ComponentResult )
  3802. SpriteMediaSetActionVariable    (MediaHandler             mh,
  3803.                                  QTAtomID                 variableID,
  3804.                                  const float *            value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0111, 0x7000, 0xA82A);
  3805.  
  3806. EXTERN_API( ComponentResult )
  3807. SpriteMediaGetActionVariable    (MediaHandler             mh,
  3808.                                  QTAtomID                 variableID,
  3809.                                  float *                value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0112, 0x7000, 0xA82A);
  3810.  
  3811. EXTERN_API( ComponentResult )
  3812. SpriteMediaGetIndImageProperty    (MediaHandler             mh,
  3813.                                  short                     imageIndex,
  3814.                                  long                     imagePropertyType,
  3815.                                  void *                    imagePropertyValue)                    FIVEWORDINLINE(0x2F3C, 0x000A, 0x0113, 0x7000, 0xA82A);
  3816.  
  3817. EXTERN_API( ComponentResult )
  3818. SpriteMediaNewSprite            (MediaHandler             mh,
  3819.                                  QTRuntimeSpriteDescPtr  newSpriteDesc)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0114, 0x7000, 0xA82A);
  3820.  
  3821. EXTERN_API( ComponentResult )
  3822. SpriteMediaDisposeSprite        (MediaHandler             mh,
  3823.                                  QTAtomID                 spriteID)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0115, 0x7000, 0xA82A);
  3824.  
  3825. EXTERN_API( ComponentResult )
  3826. SpriteMediaSetActionVariableToString (MediaHandler         mh,
  3827.                                  QTAtomID                 variableID,
  3828.                                  Ptr                     theCString)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0116, 0x7000, 0xA82A);
  3829.  
  3830. EXTERN_API( ComponentResult )
  3831. SpriteMediaGetActionVariableAsString (MediaHandler         mh,
  3832.                                  QTAtomID                 variableID,
  3833.                                  Handle *                theCString)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0117, 0x7000, 0xA82A);
  3834.  
  3835.  
  3836.  
  3837. /*************************
  3838. * Flash Media routines
  3839. **************************/
  3840.  
  3841. EXTERN_API( ComponentResult )
  3842. FlashMediaSetPan                (MediaHandler             mh,
  3843.                                  short                     xPercent,
  3844.                                  short                     yPercent)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  3845.  
  3846. EXTERN_API( ComponentResult )
  3847. FlashMediaSetZoom                (MediaHandler             mh,
  3848.                                  short                     factor)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0102, 0x7000, 0xA82A);
  3849.  
  3850. EXTERN_API( ComponentResult )
  3851. FlashMediaSetZoomRect            (MediaHandler             mh,
  3852.                                  long                     left,
  3853.                                  long                     top,
  3854.                                  long                     right,
  3855.                                  long                     bottom)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  3856.  
  3857. EXTERN_API( ComponentResult )
  3858. FlashMediaGetRefConBounds        (MediaHandler             mh,
  3859.                                  long                     refCon,
  3860.                                  long *                    left,
  3861.                                  long *                    top,
  3862.                                  long *                    right,
  3863.                                  long *                    bottom)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0104, 0x7000, 0xA82A);
  3864.  
  3865. EXTERN_API( ComponentResult )
  3866. FlashMediaGetRefConID            (MediaHandler             mh,
  3867.                                  long                     refCon,
  3868.                                  long *                    refConID)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0105, 0x7000, 0xA82A);
  3869.  
  3870. EXTERN_API( ComponentResult )
  3871. FlashMediaIDToRefCon            (MediaHandler             mh,
  3872.                                  long                     refConID,
  3873.                                  long *                    refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  3874.  
  3875. EXTERN_API( ComponentResult )
  3876. FlashMediaGetDisplayedFrameNumber (MediaHandler         mh,
  3877.                                  long *                    flashFrameNumber)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  3878.  
  3879. EXTERN_API( ComponentResult )
  3880. FlashMediaFrameNumberToMovieTime (MediaHandler             mh,
  3881.                                  long                     flashFrameNumber,
  3882.                                  TimeValue *            movieTime)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  3883.  
  3884. EXTERN_API( ComponentResult )
  3885. FlashMediaFrameLabelToMovieTime    (MediaHandler             mh,
  3886.                                  Ptr                     theLabel,
  3887.                                  TimeValue *            movieTime)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
  3888.  
  3889.  
  3890.  
  3891. /* sample format atoms*/
  3892. enum {
  3893.     kMovieMediaDataReference    = FOUR_CHAR_CODE('mmdr'),        /* data reference*/
  3894.     kMovieMediaDefaultDataReferenceID = FOUR_CHAR_CODE('ddri'),    /* atom id*/
  3895.     kMovieMediaSlaveTime        = FOUR_CHAR_CODE('slti'),        /* boolean*/
  3896.     kMovieMediaSlaveAudio        = FOUR_CHAR_CODE('slau'),        /* boolean*/
  3897.     kMovieMediaSlaveGraphicsMode = FOUR_CHAR_CODE('slgr'),        /* boolean*/
  3898.     kMovieMediaAutoPlay            = FOUR_CHAR_CODE('play'),        /* boolean*/
  3899.     kMovieMediaLoop                = FOUR_CHAR_CODE('loop'),        /* UInt8 (0=no loop, 1=loop, 2=palindrome loop)*/
  3900.     kMovieMediaUseMIMEType        = FOUR_CHAR_CODE('mime'),        /* string indicating the MIME type to use for the dataref (usually not required)*/
  3901.     kMovieMediaTitle            = FOUR_CHAR_CODE('titl'),        /* string of the media's title (tooltips)*/
  3902.     kMovieMediaAltText            = FOUR_CHAR_CODE('altt'),        /* string of alternate text if media isn't loaded*/
  3903.     kMovieMediaClipBegin        = FOUR_CHAR_CODE('clpb'),        /* MovieMediaTimeRecord of start time of embedded media*/
  3904.     kMovieMediaClipDuration        = FOUR_CHAR_CODE('clpd'),        /* MovieMediaTimeRecord of duration of embedded media*/
  3905.     kMovieMediaRegionAtom        = FOUR_CHAR_CODE('regi'),        /* contains subatoms that describe layout*/
  3906.     kMovieMediaSlaveTrackDuration = FOUR_CHAR_CODE('sltr'),        /* Boolean indicating that media handler should adjust track and media based on actual embedded movie duration*/
  3907.     kMovieMediaEnableFrameStepping = FOUR_CHAR_CODE('enfs'),    /* boolean. if true stepping on external movie steps frames within embedded movie.*/
  3908.     kMovieMediaBackgroundColor    = FOUR_CHAR_CODE('bkcl')        /* RGBColor.*/
  3909. };
  3910.  
  3911. /* fit types*/
  3912. enum {
  3913.     kMovieMediaFitNone            = 0,
  3914.     kMovieMediaFitScroll        = FOUR_CHAR_CODE('scro'),
  3915.     kMovieMediaFitClipIfNecessary = FOUR_CHAR_CODE('hidd'),
  3916.     kMovieMediaFitFill            = FOUR_CHAR_CODE('fill'),
  3917.     kMovieMediaFitMeet            = FOUR_CHAR_CODE('meet'),
  3918.     kMovieMediaFitSlice            = FOUR_CHAR_CODE('slic')
  3919. };
  3920.  
  3921. /* sub atoms for region atom*/
  3922. enum {
  3923.     kMovieMediaSpatialAdjustment = FOUR_CHAR_CODE('fit '),        /* OSType from kMovieMediaFit**/
  3924.     kMovieMediaRectangleAtom    = FOUR_CHAR_CODE('rect'),
  3925.     kMovieMediaTop                = FOUR_CHAR_CODE('top '),
  3926.     kMovieMediaLeft                = FOUR_CHAR_CODE('left'),
  3927.     kMovieMediaWidth            = FOUR_CHAR_CODE('wd  '),
  3928.     kMovieMediaHeight            = FOUR_CHAR_CODE('ht  ')
  3929. };
  3930.  
  3931. /* contained movie properties*/
  3932. enum {
  3933.     kMoviePropertyDuration        = FOUR_CHAR_CODE('dura'),        /* TimeValue **/
  3934.     kMoviePropertyTimeScale        = FOUR_CHAR_CODE('tims'),        /* TimeValue **/
  3935.     kMoviePropertyTime            = FOUR_CHAR_CODE('timv'),        /* TimeValue **/
  3936.     kMoviePropertyNaturalBounds    = FOUR_CHAR_CODE('natb'),        /* Rect **/
  3937.     kMoviePropertyMatrix        = FOUR_CHAR_CODE('mtrx'),        /* Matrix **/
  3938.     kMoviePropertyTrackList        = FOUR_CHAR_CODE('tlst')        /* long ****/
  3939. };
  3940.  
  3941.  
  3942. enum {
  3943.     kTrackPropertyMediaType        = FOUR_CHAR_CODE('mtyp'),        /* OSType*/
  3944.     kTrackPropertyInstantiation    = FOUR_CHAR_CODE('inst')        /* MovieMediaInstantiationInfoRecord*/
  3945. };
  3946.  
  3947.  
  3948. struct MovieMediaTimeRecord {
  3949.     wide                             time;
  3950.     TimeScale                         scale;
  3951. };
  3952. typedef struct MovieMediaTimeRecord        MovieMediaTimeRecord;
  3953.  
  3954. struct MovieMediaInstantiationInfoRecord {
  3955.     Boolean                         immediately;
  3956.     Boolean                         pad;
  3957.     SInt32                             bitRate;
  3958. };
  3959. typedef struct MovieMediaInstantiationInfoRecord MovieMediaInstantiationInfoRecord;
  3960. /*************************
  3961. * Movie Media routines
  3962. **************************/
  3963.  
  3964.  
  3965. EXTERN_API( ComponentResult )
  3966. MovieMediaGetChildDoMCActionCallback (MediaHandler         mh,
  3967.                                  DoMCActionUPP *        doMCActionCallbackProc,
  3968.                                  long *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0102, 0x7000, 0xA82A);
  3969.  
  3970. EXTERN_API( ComponentResult )
  3971. MovieMediaGetDoMCActionCallback    (MediaHandler             mh,
  3972.                                  DoMCActionUPP *        doMCActionCallbackProc,
  3973.                                  long *                    refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0103, 0x7000, 0xA82A);
  3974.  
  3975. EXTERN_API( ComponentResult )
  3976. MovieMediaGetCurrentMovieProperty (MediaHandler         mh,
  3977.                                  OSType                 whichProperty,
  3978.                                  void *                    value)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0104, 0x7000, 0xA82A);
  3979.  
  3980. EXTERN_API( ComponentResult )
  3981. MovieMediaGetCurrentTrackProperty (MediaHandler         mh,
  3982.                                  long                     trackID,
  3983.                                  OSType                 whichProperty,
  3984.                                  void *                    value)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  3985.  
  3986. EXTERN_API( ComponentResult )
  3987. MovieMediaGetChildMovieDataReference (MediaHandler         mh,
  3988.                                  QTAtomID                 dataRefID,
  3989.                                  short                     dataRefIndex,
  3990.                                  OSType *                dataRefType,
  3991.                                  Handle *                dataRef,
  3992.                                  QTAtomID *                dataRefIDOut,
  3993.                                  short *                dataRefIndexOut)                    FIVEWORDINLINE(0x2F3C, 0x0016, 0x0106, 0x7000, 0xA82A);
  3994.  
  3995. EXTERN_API( ComponentResult )
  3996. MovieMediaSetChildMovieDataReference (MediaHandler         mh,
  3997.                                  QTAtomID                 dataRefID,
  3998.                                  OSType                 dataRefType,
  3999.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0107, 0x7000, 0xA82A);
  4000.  
  4001. EXTERN_API( ComponentResult )
  4002. MovieMediaLoadChildMovieFromDataReference (MediaHandler  mh,
  4003.                                  QTAtomID                 dataRefID)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  4004.  
  4005.  
  4006.  
  4007. /*************************
  4008. * 3D Media routines
  4009. **************************/
  4010. EXTERN_API( ComponentResult )
  4011. Media3DGetNamedObjectList        (MediaHandler             mh,
  4012.                                  QTAtomContainer *        objectList)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  4013.  
  4014. EXTERN_API( ComponentResult )
  4015. Media3DGetRendererList            (MediaHandler             mh,
  4016.                                  QTAtomContainer *        rendererList)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  4017.  
  4018. EXTERN_API( ComponentResult )
  4019. Media3DGetCurrentGroup            (MediaHandler             mh,
  4020.                                  void *                    group)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  4021.  
  4022. EXTERN_API( ComponentResult )
  4023. Media3DTranslateNamedObjectTo    (MediaHandler             mh,
  4024.                                  char *                    objectName,
  4025.                                  Fixed                     x,
  4026.                                  Fixed                     y,
  4027.                                  Fixed                     z)                                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  4028.  
  4029. EXTERN_API( ComponentResult )
  4030. Media3DScaleNamedObjectTo        (MediaHandler             mh,
  4031.                                  char *                    objectName,
  4032.                                  Fixed                     xScale,
  4033.                                  Fixed                     yScale,
  4034.                                  Fixed                     zScale)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0105, 0x7000, 0xA82A);
  4035.  
  4036. EXTERN_API( ComponentResult )
  4037. Media3DRotateNamedObjectTo        (MediaHandler             mh,
  4038.                                  char *                    objectName,
  4039.                                  Fixed                     xDegrees,
  4040.                                  Fixed                     yDegrees,
  4041.                                  Fixed                     zDegrees)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0106, 0x7000, 0xA82A);
  4042.  
  4043. EXTERN_API( ComponentResult )
  4044. Media3DSetCameraData            (MediaHandler             mh,
  4045.                                  void *                    cameraData)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  4046.  
  4047. EXTERN_API( ComponentResult )
  4048. Media3DGetCameraData            (MediaHandler             mh,
  4049.                                  void *                    cameraData)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  4050.  
  4051. EXTERN_API( ComponentResult )
  4052. Media3DSetCameraAngleAspect        (MediaHandler             mh,
  4053.                                  QTFloatSingle             fov,
  4054.                                  QTFloatSingle             aspectRatioXToY)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
  4055.  
  4056. EXTERN_API( ComponentResult )
  4057. Media3DGetCameraAngleAspect        (MediaHandler             mh,
  4058.                                  QTFloatSingle *        fov,
  4059.                                  QTFloatSingle *        aspectRatioXToY)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x010A, 0x7000, 0xA82A);
  4060.  
  4061.  
  4062. EXTERN_API( ComponentResult )
  4063. Media3DSetCameraRange            (MediaHandler             mh,
  4064.                                  void *                    tQ3CameraRange)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
  4065.  
  4066. EXTERN_API( ComponentResult )
  4067. Media3DGetCameraRange            (MediaHandler             mh,
  4068.                                  void *                    tQ3CameraRange)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
  4069.  
  4070. EXTERN_API( ComponentResult )
  4071. Media3DGetViewObject            (MediaHandler             mh,
  4072.                                  void *                    tq3viewObject)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010F, 0x7000, 0xA82A);
  4073.  
  4074.  
  4075.  
  4076. /****************************************
  4077. *                                        *
  4078. *      M O V I E   C O N T R O L L E R        *
  4079. *                                        *
  4080. ****************************************/
  4081. enum {
  4082.     MovieControllerComponentType = FOUR_CHAR_CODE('play')
  4083. };
  4084.  
  4085.  
  4086. enum {
  4087.     kMovieControllerQTVRFlag    = 1 << 0,
  4088.     kMovieControllerDontDisplayToUser = 1 << 1
  4089. };
  4090.  
  4091.  
  4092. typedef ComponentInstance                 MovieController;
  4093. typedef MovieController *                MovieControllerPtr;
  4094. enum {
  4095.     mcActionIdle                = 1,                            /* no param*/
  4096.     mcActionDraw                = 2,                            /* param is WindowPtr*/
  4097.     mcActionActivate            = 3,                            /* no param*/
  4098.     mcActionDeactivate            = 4,                            /* no param*/
  4099.     mcActionMouseDown            = 5,                            /* param is pointer to EventRecord*/
  4100.     mcActionKey                    = 6,                            /* param is pointer to EventRecord*/
  4101.     mcActionPlay                = 8,                            /* param is Fixed, play rate*/
  4102.     mcActionGoToTime            = 12,                            /* param is TimeRecord*/
  4103.     mcActionSetVolume            = 14,                            /* param is a short*/
  4104.     mcActionGetVolume            = 15,                            /* param is pointer to a short*/
  4105.     mcActionStep                = 18,                            /* param is number of steps (short)*/
  4106.     mcActionSetLooping            = 21,                            /* param is Boolean*/
  4107.     mcActionGetLooping            = 22,                            /* param is pointer to a Boolean*/
  4108.     mcActionSetLoopIsPalindrome    = 23,                            /* param is Boolean*/
  4109.     mcActionGetLoopIsPalindrome    = 24,                            /* param is pointer to a Boolean*/
  4110.     mcActionSetGrowBoxBounds    = 25,                            /* param is a Rect*/
  4111.     mcActionControllerSizeChanged = 26,                            /* no param*/
  4112.     mcActionSetSelectionBegin    = 29,                            /* param is TimeRecord*/
  4113.     mcActionSetSelectionDuration = 30,                            /* param is TimeRecord, action only taken on set-duration*/
  4114.     mcActionSetKeysEnabled        = 32,                            /* param is Boolean*/
  4115.     mcActionGetKeysEnabled        = 33,                            /* param is pointer to Boolean*/
  4116.     mcActionSetPlaySelection    = 34,                            /* param is Boolean*/
  4117.     mcActionGetPlaySelection    = 35,                            /* param is pointer to Boolean*/
  4118.     mcActionSetUseBadge            = 36,                            /* param is Boolean*/
  4119.     mcActionGetUseBadge            = 37,                            /* param is pointer to Boolean*/
  4120.     mcActionSetFlags            = 38,                            /* param is long of flags*/
  4121.     mcActionGetFlags            = 39,                            /* param is pointer to a long of flags*/
  4122.     mcActionSetPlayEveryFrame    = 40,                            /* param is Boolean*/
  4123.     mcActionGetPlayEveryFrame    = 41,                            /* param is pointer to Boolean*/
  4124.     mcActionGetPlayRate            = 42,                            /* param is pointer to Fixed*/
  4125.     mcActionShowBalloon            = 43,                            /* param is a pointer to a boolean. set to false to stop balloon*/
  4126.     mcActionBadgeClick            = 44,                            /* param is pointer to Boolean. set to false to ignore click*/
  4127.     mcActionMovieClick            = 45,                            /* param is pointer to event record. change "what" to nullEvt to kill click*/
  4128.     mcActionSuspend                = 46,                            /* no param*/
  4129.     mcActionResume                = 47,                            /* no param*/
  4130.     mcActionSetControllerKeysEnabled = 48,                        /* param is Boolean*/
  4131.     mcActionGetTimeSliderRect    = 49,                            /* param is pointer to rect*/
  4132.     mcActionMovieEdited            = 50,                            /* no param*/
  4133.     mcActionGetDragEnabled        = 51,                            /* param is pointer to Boolean*/
  4134.     mcActionSetDragEnabled        = 52,                            /* param is Boolean*/
  4135.     mcActionGetSelectionBegin    = 53,                            /* param is TimeRecord*/
  4136.     mcActionGetSelectionDuration = 54,                            /* param is TimeRecord*/
  4137.     mcActionPrerollAndPlay        = 55,                            /* param is Fixed, play rate*/
  4138.     mcActionGetCursorSettingEnabled = 56,                        /* param is pointer to Boolean*/
  4139.     mcActionSetCursorSettingEnabled = 57,                        /* param is Boolean*/
  4140.     mcActionSetColorTable        = 58,                            /* param is CTabHandle*/
  4141.     mcActionLinkToURL            = 59,                            /* param is Handle to URL*/
  4142.     mcActionCustomButtonClick    = 60,                            /* param is pointer to EventRecord*/
  4143.     mcActionForceTimeTableUpdate = 61,                            /* no param*/
  4144.     mcActionSetControllerTimeLimits = 62,                        /* param is pointer to 2 time values min/max. do no send this message to controller. used internally only.*/
  4145.     mcActionExecuteAllActionsForQTEvent = 63,                    /* param is ResolvedQTEventSpecPtr*/
  4146.     mcActionExecuteOneActionForQTEvent = 64,                    /* param is ResolvedQTEventSpecPtr*/
  4147.     mcActionAdjustCursor        = 65,                            /* param is pointer to EventRecord (WindowPtr is in message parameter)*/
  4148.     mcActionUseTrackForTimeTable = 66,                            /* param is pointer to {long trackID; Boolean useIt}. do not send this message to controller. */
  4149.     mcActionClickAndHoldPoint    = 67,                            /* param is point (local coordinates). return true if point has click & hold action (e.g., VR object movie autorotate spot)*/
  4150.     mcActionShowMessageString    = 68,                            /* param is a StringPtr*/
  4151.     mcActionShowStatusString    = 69,                            /* param is a QTStatusStringPtr*/
  4152.     mcActionGetExternalMovie    = 70,                            /* param is a QTGetExternalMoviePtr*/
  4153.     mcActionGetChapterTime        = 71,                            /* param is a QTGetChapterTimePtr*/
  4154.     mcActionPerformActionList    = 72,                            /* param is a QTAtomSpecPtr*/
  4155.     mcActionEvaluateExpression    = 73,                            /* param is a QTEvaluateExpressionPtr*/
  4156.     mcActionFetchParameterAs    = 74,                            /* param is a QTFetchParameterAsPtr*/
  4157.     mcActionGetCursorByID        = 75,                            /* param is a QTGetCursorByIDPtr*/
  4158.     mcActionGetNextURL            = 76,                            /* param is a Handle to URL*/
  4159.     mcActionMovieChanged        = 77,
  4160.     mcActionDoScript            = 78,                            /* param is QTDoScriptPtr*/
  4161.     mcActionRestartAtTime        = 79,                            /* param is QTResartAtTimePtr*/
  4162.     mcActionGetIndChapter        = 80,                            /* param is QTChapterInfoPtr*/
  4163.     mcActionLinkToURLExtended    = 81                            /* param is QTAtomContainer as used by QTParseHREF*/
  4164. };
  4165.  
  4166. typedef short                             mcAction;
  4167. enum {
  4168.     mcFlagSuppressMovieFrame    = 1 << 0,
  4169.     mcFlagSuppressStepButtons    = 1 << 1,
  4170.     mcFlagSuppressSpeakerButton    = 1 << 2,
  4171.     mcFlagsUseWindowPalette        = 1 << 3,
  4172.     mcFlagsDontInvalidate        = 1 << 4,
  4173.     mcFlagsUseCustomButton        = 1 << 5
  4174. };
  4175.  
  4176.  
  4177. enum {
  4178.     mcPositionDontInvalidate    = 1 << 5
  4179. };
  4180.  
  4181. typedef unsigned long                     mcFlags;
  4182. enum {
  4183.     kMCIEEnabledButtonPicture    = 1,
  4184.     kMCIEDisabledButtonPicture    = 2,
  4185.     kMCIEDepressedButtonPicture    = 3,
  4186.     kMCIEEnabledSizeBoxPicture    = 4,
  4187.     kMCIEDisabledSizeBoxPicture    = 5,
  4188.     kMCIEEnabledUnavailableButtonPicture = 6,
  4189.     kMCIEDisabledUnavailableButtonPicture = 7,
  4190.     kMCIESoundSlider            = 128,
  4191.     kMCIESoundThumb                = 129,
  4192.     kMCIEColorTable                = 256,
  4193.     kMCIEIsFlatAppearance        = 257,
  4194.     kMCIEDoButtonIconsDropOnDepress = 258
  4195. };
  4196.  
  4197. typedef unsigned long                     MCInterfaceElement;
  4198. typedef CALLBACK_API( Boolean , MCActionFilterProcPtr )(MovieController mc, short *action, void *params);
  4199. typedef CALLBACK_API( Boolean , MCActionFilterWithRefConProcPtr )(MovieController mc, short action, void *params, long refCon);
  4200. typedef STACK_UPP_TYPE(MCActionFilterProcPtr)                     MCActionFilterUPP;
  4201. typedef STACK_UPP_TYPE(MCActionFilterWithRefConProcPtr)         MCActionFilterWithRefConUPP;
  4202. /*
  4203.     menu related stuff
  4204. */
  4205. enum {
  4206.     mcInfoUndoAvailable            = 1 << 0,
  4207.     mcInfoCutAvailable            = 1 << 1,
  4208.     mcInfoCopyAvailable            = 1 << 2,
  4209.     mcInfoPasteAvailable        = 1 << 3,
  4210.     mcInfoClearAvailable        = 1 << 4,
  4211.     mcInfoHasSound                = 1 << 5,
  4212.     mcInfoIsPlaying                = 1 << 6,
  4213.     mcInfoIsLooping                = 1 << 7,
  4214.     mcInfoIsInPalindrome        = 1 << 8,
  4215.     mcInfoEditingEnabled        = 1 << 9,
  4216.     mcInfoMovieIsInteractive    = 1 << 10
  4217. };
  4218.  
  4219. /* menu item codes*/
  4220. enum {
  4221.     mcMenuUndo                    = 1,
  4222.     mcMenuCut                    = 3,
  4223.     mcMenuCopy                    = 4,
  4224.     mcMenuPaste                    = 5,
  4225.     mcMenuClear                    = 6
  4226. };
  4227.  
  4228. /* structures used as mcActionFilterProc params*/
  4229.  
  4230. struct QTStatusStringRecord {
  4231.     long                             stringTypeFlags;
  4232.     char *                            statusString;
  4233. };
  4234. typedef struct QTStatusStringRecord        QTStatusStringRecord;
  4235.  
  4236. typedef QTStatusStringRecord *            QTStatusStringPtr;
  4237.  
  4238. struct QTGetExternalMovieRecord {
  4239.     long                             targetType;                    /* set to kTargetMovieName or kTargetMovieID*/
  4240.     StringPtr                         movieName;
  4241.     long                             movieID;
  4242.     MoviePtr                         theMovie;
  4243.     MovieControllerPtr                 theController;
  4244. };
  4245. typedef struct QTGetExternalMovieRecord    QTGetExternalMovieRecord;
  4246.  
  4247. typedef QTGetExternalMovieRecord *        QTGetExternalMoviePtr;
  4248.  
  4249. struct QTGetChapterTimeRecord {
  4250.     StringPtr                         chapterName;
  4251.     TimeRecord                         chapterTime;
  4252. };
  4253. typedef struct QTGetChapterTimeRecord    QTGetChapterTimeRecord;
  4254.  
  4255. typedef QTGetChapterTimeRecord *        QTGetChapterTimePtr;
  4256.  
  4257. struct QTChapterInfoRecord {
  4258.     long                             index;                        /* first chapter has index of 1*/
  4259.     TimeValue                         time;                        /* -1 if no more chapters available*/
  4260.     Str255                             name;
  4261. };
  4262. typedef struct QTChapterInfoRecord        QTChapterInfoRecord;
  4263.  
  4264. typedef QTChapterInfoRecord *            QTChapterInfoPtr;
  4265.  
  4266. struct QTEvaluateExpressionRecord {
  4267.     QTAtomSpec                         expressionSpec;
  4268.     float *                            expressionResult;
  4269. };
  4270. typedef struct QTEvaluateExpressionRecord QTEvaluateExpressionRecord;
  4271.  
  4272. typedef QTEvaluateExpressionRecord *    QTEvaluateExpressionPtr;
  4273.  
  4274. struct QTFetchParameterAsRecord {
  4275.     QTAtomSpec                         paramListSpec;
  4276.     long                             paramIndex;
  4277.     long                             paramType;
  4278.     long                             allowedFlags;
  4279.     void *                            min;
  4280.     void *                            max;
  4281.     void *                            currentValue;
  4282.     void *                            newValue;
  4283.     Boolean                         isUnsignedValue;
  4284. };
  4285. typedef struct QTFetchParameterAsRecord    QTFetchParameterAsRecord;
  4286.  
  4287. typedef QTFetchParameterAsRecord *        QTFetchParameterAsPtr;
  4288.  
  4289. struct QTGetCursorByIDRecord {
  4290.     short                             cursorID;
  4291.     Handle                             colorCursorData;
  4292.     long                             reserved1;
  4293. };
  4294. typedef struct QTGetCursorByIDRecord    QTGetCursorByIDRecord;
  4295.  
  4296. typedef QTGetCursorByIDRecord *            QTGetCursorByIDPtr;
  4297.  
  4298. struct QTDoScriptRecord {
  4299.     long                             scriptTypeFlags;
  4300.     char *                            command;
  4301.     char *                            arguments;
  4302. };
  4303. typedef struct QTDoScriptRecord            QTDoScriptRecord;
  4304.  
  4305. typedef QTDoScriptRecord *                QTDoScriptPtr;
  4306.  
  4307. struct QTRestartAtTimeRecord {
  4308.     TimeValue                         startTime;                    /* time scale is the movie timescale*/
  4309.     Fixed                             rate;                        /* if rate is zero, the movie's current rate is maintained*/
  4310. };
  4311. typedef struct QTRestartAtTimeRecord    QTRestartAtTimeRecord;
  4312.  
  4313. typedef QTRestartAtTimeRecord *            QTRestartAtTimePtr;
  4314. /* values for paramType field of QTFetchParameterAsRecord*/
  4315. enum {
  4316.     kFetchAsBooleanPtr            = 1,
  4317.     kFetchAsShortPtr            = 2,
  4318.     kFetchAsLongPtr                = 3,
  4319.     kFetchAsMatrixRecordPtr        = 4,
  4320.     kFetchAsModifierTrackGraphicsModeRecord = 5,
  4321.     kFetchAsHandle                = 6,
  4322.     kFetchAsStr255                = 7,
  4323.     kFetchAsFloatPtr            = 8,
  4324.     kFetchAsPointPtr            = 9,
  4325.     kFetchAsNewAtomContainer    = 10,
  4326.     kFetchAsQTEventRecordPtr    = 11,
  4327.     kFetchAsFixedPtr            = 12,
  4328.     kFetchAsSetControllerValuePtr = 13,
  4329.     kFetchAsRgnHandle            = 14,                            /* flipped to native*/
  4330.     kFetchAsComponentDescriptionPtr = 15,
  4331.     kFetchAsCString                = 16
  4332. };
  4333.  
  4334. enum {
  4335.     kQTCursorOpenHand            = -19183,
  4336.     kQTCursorClosedHand            = -19182,
  4337.     kQTCursorPointingHand        = -19181,
  4338.     kQTCursorRightArrow            = -19180,
  4339.     kQTCursorLeftArrow            = -19179,
  4340.     kQTCursorDownArrow            = -19178,
  4341.     kQTCursorUpArrow            = -19177,
  4342.     kQTCursorIBeam                = -19176
  4343. };
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350. /* target management */
  4351. EXTERN_API( ComponentResult )
  4352. MCSetMovie                        (MovieController         mc,
  4353.                                  Movie                     theMovie,
  4354.                                  WindowPtr                 movieWindow,
  4355.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A);
  4356.  
  4357. EXTERN_API( Movie )
  4358. MCGetIndMovie                    (MovieController         mc,
  4359.                                  short                     index)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
  4360.  
  4361.  
  4362. #define MCGetMovie(mc) MCGetIndMovie(mc, 0)
  4363. EXTERN_API( ComponentResult )
  4364. MCRemoveAllMovies                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  4365.  
  4366. EXTERN_API( ComponentResult )
  4367. MCRemoveAMovie                    (MovieController         mc,
  4368.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  4369.  
  4370. EXTERN_API( ComponentResult )
  4371. MCRemoveMovie                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  4372.  
  4373. /* event handling etc. */
  4374. EXTERN_API( ComponentResult )
  4375. MCIsPlayerEvent                    (MovieController         mc,
  4376.                                  const EventRecord *    e)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  4377.  
  4378. /* obsolete. use MCSetActionFilterWithRefCon instead. */
  4379. EXTERN_API( ComponentResult )
  4380. MCSetActionFilter                (MovieController         mc,
  4381.                                  MCActionFilterUPP         blob)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  4382.  
  4383. /*
  4384.     proc is of the form:
  4385.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  4386.     proc returns TRUE if it handles the action, FALSE if not
  4387.     action is passed as a VAR so that it could be changed by filter
  4388.     this is consistent with the current dialog manager stuff
  4389.     params is any potential parameters that go with the action
  4390.         such as set playback rate to xxx.
  4391. */
  4392. EXTERN_API( ComponentResult )
  4393. MCDoAction                        (MovieController         mc,
  4394.                                  short                     action,
  4395.                                  void *                    params)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0009, 0x7000, 0xA82A);
  4396.  
  4397. /* state type things */
  4398. EXTERN_API( ComponentResult )
  4399. MCSetControllerAttached            (MovieController         mc,
  4400.                                  Boolean                 attach)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  4401.  
  4402. EXTERN_API( ComponentResult )
  4403. MCIsControllerAttached            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
  4404.  
  4405. EXTERN_API( ComponentResult )
  4406. MCSetControllerPort                (MovieController         mc,
  4407.                                  CGrafPtr                 gp)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  4408.  
  4409. EXTERN_API( CGrafPtr )
  4410. MCGetControllerPort                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  4411.  
  4412. EXTERN_API( ComponentResult )
  4413. MCSetVisible                    (MovieController         mc,
  4414.                                  Boolean                 visible)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000E, 0x7000, 0xA82A);
  4415.  
  4416. EXTERN_API( ComponentResult )
  4417. MCGetVisible                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A);
  4418.  
  4419. EXTERN_API( ComponentResult )
  4420. MCGetControllerBoundsRect        (MovieController         mc,
  4421.                                  Rect *                    bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  4422.  
  4423. EXTERN_API( ComponentResult )
  4424. MCSetControllerBoundsRect        (MovieController         mc,
  4425.                                  const Rect *            bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  4426.  
  4427. EXTERN_API( RgnHandle )
  4428. MCGetControllerBoundsRgn        (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  4429.  
  4430. EXTERN_API( RgnHandle )
  4431. MCGetWindowRgn                    (MovieController         mc,
  4432.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  4433.  
  4434.  
  4435. /* other stuff */
  4436. EXTERN_API( ComponentResult )
  4437. MCMovieChanged                    (MovieController         mc,
  4438.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  4439.  
  4440.  
  4441. /*
  4442.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  4443.         can update our graphical (and internal) state accordingly.
  4444. */
  4445. EXTERN_API( ComponentResult )
  4446. MCSetDuration                    (MovieController         mc,
  4447.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  4448.  
  4449. /*
  4450.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  4451.         or MCSetMovie is called
  4452. */
  4453. EXTERN_API( TimeValue )
  4454. MCGetCurrentTime                (MovieController         mc,
  4455.                                  TimeScale *            scale)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A);
  4456.  
  4457. /*
  4458.     returns the time value and the time scale it is on. if there are no movies, the
  4459.         time scale is passed back as 0. scale is an optional parameter
  4460.  
  4461. */
  4462. EXTERN_API( ComponentResult )
  4463. MCNewAttachedController            (MovieController         mc,
  4464.                                  Movie                     theMovie,
  4465.                                  WindowPtr                 w,
  4466.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  4467.  
  4468. /*
  4469.     makes theMovie the only movie attached to the controller. makes the controller visible.
  4470.     the window and where parameters are passed a long to MCSetMovie and behave as
  4471.     described there
  4472. */
  4473. EXTERN_API( ComponentResult )
  4474. MCDraw                            (MovieController         mc,
  4475.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  4476.  
  4477. EXTERN_API( ComponentResult )
  4478. MCActivate                        (MovieController         mc,
  4479.                                  WindowPtr                 w,
  4480.                                  Boolean                 activate)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  4481.  
  4482. EXTERN_API( ComponentResult )
  4483. MCIdle                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001A, 0x7000, 0xA82A);
  4484.  
  4485. EXTERN_API( ComponentResult )
  4486. MCKey                            (MovieController         mc,
  4487.                                  SInt8                     key,
  4488.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A);
  4489.  
  4490. EXTERN_API( ComponentResult )
  4491. MCClick                            (MovieController         mc,
  4492.                                  WindowPtr                 w,
  4493.                                  Point                     where,
  4494.                                  long                     when,
  4495.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x001C, 0x7000, 0xA82A);
  4496.  
  4497.  
  4498. /*
  4499.     calls for editing
  4500. */
  4501. EXTERN_API( ComponentResult )
  4502. MCEnableEditing                    (MovieController         mc,
  4503.                                  Boolean                 enabled)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x001D, 0x7000, 0xA82A);
  4504.  
  4505. EXTERN_API( long )
  4506. MCIsEditingEnabled                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
  4507.  
  4508. EXTERN_API( Movie )
  4509. MCCopy                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001F, 0x7000, 0xA82A);
  4510.  
  4511. EXTERN_API( Movie )
  4512. MCCut                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0020, 0x7000, 0xA82A);
  4513.  
  4514. EXTERN_API( ComponentResult )
  4515. MCPaste                            (MovieController         mc,
  4516.                                  Movie                     srcMovie)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A);
  4517.  
  4518. EXTERN_API( ComponentResult )
  4519. MCClear                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
  4520.  
  4521. EXTERN_API( ComponentResult )
  4522. MCUndo                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0023, 0x7000, 0xA82A);
  4523.  
  4524.  
  4525. /*
  4526.  *    somewhat special stuff
  4527.  */
  4528. EXTERN_API( ComponentResult )
  4529. MCPositionController            (MovieController         mc,
  4530.                                  const Rect *            movieRect,
  4531.                                  const Rect *            controllerRect,
  4532.                                  long                     someFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
  4533.  
  4534.  
  4535. EXTERN_API( ComponentResult )
  4536. MCGetControllerInfo                (MovieController         mc,
  4537.                                  long *                    someFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  4538.  
  4539.  
  4540.  
  4541. EXTERN_API( ComponentResult )
  4542. MCSetClip                        (MovieController         mc,
  4543.                                  RgnHandle                 theClip,
  4544.                                  RgnHandle                 movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
  4545.  
  4546. EXTERN_API( ComponentResult )
  4547. MCGetClip                        (MovieController         mc,
  4548.                                  RgnHandle *            theClip,
  4549.                                  RgnHandle *            movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
  4550.  
  4551.  
  4552. EXTERN_API( ComponentResult )
  4553. MCDrawBadge                        (MovieController         mc,
  4554.                                  RgnHandle                 movieRgn,
  4555.                                  RgnHandle *            badgeRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
  4556.  
  4557. EXTERN_API( ComponentResult )
  4558. MCSetUpEditMenu                    (MovieController         mc,
  4559.                                  long                     modifiers,
  4560.                                  MenuHandle             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
  4561.  
  4562. EXTERN_API( ComponentResult )
  4563. MCGetMenuString                    (MovieController         mc,
  4564.                                  long                     modifiers,
  4565.                                  short                     item,
  4566.                                  Str255                 aString)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x002C, 0x7000, 0xA82A);
  4567.  
  4568. EXTERN_API( ComponentResult )
  4569. MCSetActionFilterWithRefCon        (MovieController         mc,
  4570.                                  MCActionFilterWithRefConUPP  blob,
  4571.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  4572.  
  4573. EXTERN_API( ComponentResult )
  4574. MCPtInController                (MovieController         mc,
  4575.                                  Point                     thePt,
  4576.                                  Boolean *                inController)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
  4577.  
  4578. EXTERN_API( ComponentResult )
  4579. MCInvalidate                    (MovieController         mc,
  4580.                                  WindowPtr                 w,
  4581.                                  RgnHandle                 invalidRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002F, 0x7000, 0xA82A);
  4582.  
  4583. EXTERN_API( ComponentResult )
  4584. MCAdjustCursor                    (MovieController         mc,
  4585.                                  WindowPtr                 w,
  4586.                                  Point                     where,
  4587.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0030, 0x7000, 0xA82A);
  4588.  
  4589. EXTERN_API( ComponentResult )
  4590. MCGetInterfaceElement            (MovieController         mc,
  4591.                                  MCInterfaceElement     whichElement,
  4592.                                  void *                    element)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
  4593.  
  4594. EXTERN_API( ComponentResult )
  4595. MCGetDoActionsProc                (MovieController         mc,
  4596.                                  DoMCActionUPP *        doMCActionProc,
  4597.                                  long *                    doMCActionRefCon)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603. /****************************************
  4604. *                                        *
  4605. *          T  I  M  E  B  A  S  E            *
  4606. *                                        *
  4607. ****************************************/
  4608. EXTERN_API( TimeBase )
  4609. NewTimeBase                        (void)                                                        THREEWORDINLINE(0x303C, 0x00A5, 0xAAAA);
  4610.  
  4611. EXTERN_API( void )
  4612. DisposeTimeBase                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B6, 0xAAAA);
  4613.  
  4614. EXTERN_API( TimeValue )
  4615. GetTimeBaseTime                    (TimeBase                 tb,
  4616.                                  TimeScale                 s,
  4617.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00A6, 0xAAAA);
  4618.  
  4619. EXTERN_API( void )
  4620. SetTimeBaseTime                    (TimeBase                 tb,
  4621.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00A7, 0xAAAA);
  4622.  
  4623. EXTERN_API( void )
  4624. SetTimeBaseValue                (TimeBase                 tb,
  4625.                                  TimeValue                 t,
  4626.                                  TimeScale                 s)                                    THREEWORDINLINE(0x303C, 0x00A8, 0xAAAA);
  4627.  
  4628. EXTERN_API( Fixed )
  4629. GetTimeBaseRate                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00A9, 0xAAAA);
  4630.  
  4631. EXTERN_API( void )
  4632. SetTimeBaseRate                    (TimeBase                 tb,
  4633.                                  Fixed                     r)                                    THREEWORDINLINE(0x303C, 0x00AA, 0xAAAA);
  4634.  
  4635. EXTERN_API( TimeValue )
  4636. GetTimeBaseStartTime            (TimeBase                 tb,
  4637.                                  TimeScale                 s,
  4638.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AB, 0xAAAA);
  4639.  
  4640. EXTERN_API( void )
  4641. SetTimeBaseStartTime            (TimeBase                 tb,
  4642.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AC, 0xAAAA);
  4643.  
  4644. EXTERN_API( TimeValue )
  4645. GetTimeBaseStopTime                (TimeBase                 tb,
  4646.                                  TimeScale                 s,
  4647.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AD, 0xAAAA);
  4648.  
  4649. EXTERN_API( void )
  4650. SetTimeBaseStopTime                (TimeBase                 tb,
  4651.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AE, 0xAAAA);
  4652.  
  4653. EXTERN_API( long )
  4654. GetTimeBaseFlags                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B1, 0xAAAA);
  4655.  
  4656. EXTERN_API( void )
  4657. SetTimeBaseFlags                (TimeBase                 tb,
  4658.                                  long                     timeBaseFlags)                        THREEWORDINLINE(0x303C, 0x00B2, 0xAAAA);
  4659.  
  4660. EXTERN_API( void )
  4661. SetTimeBaseMasterTimeBase        (TimeBase                 slave,
  4662.                                  TimeBase                 master,
  4663.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B4, 0xAAAA);
  4664.  
  4665. EXTERN_API( TimeBase )
  4666. GetTimeBaseMasterTimeBase        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00AF, 0xAAAA);
  4667.  
  4668. EXTERN_API( void )
  4669. SetTimeBaseMasterClock            (TimeBase                 slave,
  4670.                                  Component                 clockMeister,
  4671.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B3, 0xAAAA);
  4672.  
  4673. EXTERN_API( ComponentInstance )
  4674. GetTimeBaseMasterClock            (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B0, 0xAAAA);
  4675.  
  4676. EXTERN_API( void )
  4677. ConvertTime                        (TimeRecord *            inout,
  4678.                                  TimeBase                 newBase)                            THREEWORDINLINE(0x303C, 0x00B5, 0xAAAA);
  4679.  
  4680. EXTERN_API( void )
  4681. ConvertTimeScale                (TimeRecord *            inout,
  4682.                                  TimeScale                 newScale)                            THREEWORDINLINE(0x303C, 0x00B7, 0xAAAA);
  4683.  
  4684. EXTERN_API( void )
  4685. AddTime                            (TimeRecord *            dst,
  4686.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010C, 0xAAAA);
  4687.  
  4688. EXTERN_API( void )
  4689. SubtractTime                    (TimeRecord *            dst,
  4690.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010D, 0xAAAA);
  4691.  
  4692. EXTERN_API( long )
  4693. GetTimeBaseStatus                (TimeBase                 tb,
  4694.                                  TimeRecord *            unpinnedTime)                        THREEWORDINLINE(0x303C, 0x010B, 0xAAAA);
  4695.  
  4696. EXTERN_API( void )
  4697. SetTimeBaseZero                    (TimeBase                 tb,
  4698.                                  TimeRecord *            zero)                                THREEWORDINLINE(0x303C, 0x0128, 0xAAAA);
  4699.  
  4700. EXTERN_API( Fixed )
  4701. GetTimeBaseEffectiveRate        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x0124, 0xAAAA);
  4702.  
  4703.  
  4704. /****************************************
  4705. *                                        *
  4706. *          C  A  L  L  B  A  C  K             *
  4707. *                                        *
  4708. ****************************************/
  4709. EXTERN_API( QTCallBack )
  4710. NewCallBack                        (TimeBase                 tb,
  4711.                                  short                     cbType)                                THREEWORDINLINE(0x303C, 0x00EB, 0xAAAA);
  4712.  
  4713. EXTERN_API( void )
  4714. DisposeCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EC, 0xAAAA);
  4715.  
  4716. EXTERN_API( short )
  4717. GetCallBackType                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00ED, 0xAAAA);
  4718.  
  4719. EXTERN_API( TimeBase )
  4720. GetCallBackTimeBase                (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EE, 0xAAAA);
  4721.  
  4722. EXTERN_API( OSErr )
  4723. CallMeWhen                        (QTCallBack             cb,
  4724.                                  QTCallBackUPP             callBackProc,
  4725.                                  long                     refCon,
  4726.                                  long                     param1,
  4727.                                  long                     param2,
  4728.                                  long                     param3)                                THREEWORDINLINE(0x303C, 0x00B8, 0xAAAA);
  4729.  
  4730. EXTERN_API( void )
  4731. CancelCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00B9, 0xAAAA);
  4732.  
  4733.  
  4734. /****************************************
  4735. *                                        *
  4736. *          C L O C K   C A L L B A C K      *
  4737. *                S U P P O R T              *
  4738. *                                        *
  4739. ****************************************/
  4740. EXTERN_API( OSErr )
  4741. AddCallBackToTimeBase            (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x0129, 0xAAAA);
  4742.  
  4743. EXTERN_API( OSErr )
  4744. RemoveCallBackFromTimeBase        (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012A, 0xAAAA);
  4745.  
  4746. EXTERN_API( QTCallBack )
  4747. GetFirstCallBack                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x012B, 0xAAAA);
  4748.  
  4749. EXTERN_API( QTCallBack )
  4750. GetNextCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012C, 0xAAAA);
  4751.  
  4752. EXTERN_API( void )
  4753. ExecuteCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012D, 0xAAAA);
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759. EXTERN_API( ComponentResult )
  4760. MusicMediaGetIndexedTunePlayer    (ComponentInstance         ti,
  4761.                                  long                     sampleDescIndex,
  4762.                                  ComponentInstance *    tp)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  4763.  
  4764.  
  4765. /* UPP call backs */
  4766. #if OPAQUE_UPP_TYPES
  4767.     EXTERN_API(MovieRgnCoverUPP)
  4768.     NewMovieRgnCoverUPP               (MovieRgnCoverProcPtr    userRoutine);
  4769.  
  4770.     EXTERN_API(MovieProgressUPP)
  4771.     NewMovieProgressUPP               (MovieProgressProcPtr    userRoutine);
  4772.  
  4773.     EXTERN_API(MovieDrawingCompleteUPP)
  4774.     NewMovieDrawingCompleteUPP       (MovieDrawingCompleteProcPtr userRoutine);
  4775.  
  4776.     EXTERN_API(TrackTransferUPP)
  4777.     NewTrackTransferUPP               (TrackTransferProcPtr    userRoutine);
  4778.  
  4779.     EXTERN_API(GetMovieUPP)
  4780.     NewGetMovieUPP                   (GetMovieProcPtr            userRoutine);
  4781.  
  4782.     EXTERN_API(MoviePreviewCallOutUPP)
  4783.     NewMoviePreviewCallOutUPP       (MoviePreviewCallOutProcPtr userRoutine);
  4784.  
  4785.     EXTERN_API(TextMediaUPP)
  4786.     NewTextMediaUPP                   (TextMediaProcPtr        userRoutine);
  4787.  
  4788.     EXTERN_API(ActionsUPP)
  4789.     NewActionsUPP                   (ActionsProcPtr            userRoutine);
  4790.  
  4791.     EXTERN_API(DoMCActionUPP)
  4792.     NewDoMCActionUPP               (DoMCActionProcPtr        userRoutine);
  4793.  
  4794.     EXTERN_API(MovieExecuteWiredActionsUPP)
  4795.     NewMovieExecuteWiredActionsUPP    (MovieExecuteWiredActionsProcPtr userRoutine);
  4796.  
  4797.     EXTERN_API(MoviePrePrerollCompleteUPP)
  4798.     NewMoviePrePrerollCompleteUPP    (MoviePrePrerollCompleteProcPtr userRoutine);
  4799.  
  4800.     EXTERN_API(MoviesErrorUPP)
  4801.     NewMoviesErrorUPP               (MoviesErrorProcPtr        userRoutine);
  4802.  
  4803.     EXTERN_API(QTCallBackUPP)
  4804.     NewQTCallBackUPP               (QTCallBackProcPtr        userRoutine);
  4805.  
  4806.     EXTERN_API(QTSyncTaskUPP)
  4807.     NewQTSyncTaskUPP               (QTSyncTaskProcPtr        userRoutine);
  4808.  
  4809.     EXTERN_API(TweenerDataUPP)
  4810.     NewTweenerDataUPP               (TweenerDataProcPtr        userRoutine);
  4811.  
  4812.     EXTERN_API(QTBandwidthNotificationUPP)
  4813.     NewQTBandwidthNotificationUPP    (QTBandwidthNotificationProcPtr userRoutine);
  4814.  
  4815.     EXTERN_API(MCActionFilterUPP)
  4816.     NewMCActionFilterUPP           (MCActionFilterProcPtr    userRoutine);
  4817.  
  4818.     EXTERN_API(MCActionFilterWithRefConUPP)
  4819.     NewMCActionFilterWithRefConUPP    (MCActionFilterWithRefConProcPtr userRoutine);
  4820.  
  4821.     EXTERN_API(void)
  4822.     DisposeMovieRgnCoverUPP           (MovieRgnCoverUPP        userUPP);
  4823.  
  4824.     EXTERN_API(void)
  4825.     DisposeMovieProgressUPP           (MovieProgressUPP        userUPP);
  4826.  
  4827.     EXTERN_API(void)
  4828.     DisposeMovieDrawingCompleteUPP    (MovieDrawingCompleteUPP userUPP);
  4829.  
  4830.     EXTERN_API(void)
  4831.     DisposeTrackTransferUPP           (TrackTransferUPP        userUPP);
  4832.  
  4833.     EXTERN_API(void)
  4834.     DisposeGetMovieUPP               (GetMovieUPP                userUPP);
  4835.  
  4836.     EXTERN_API(void)
  4837.     DisposeMoviePreviewCallOutUPP    (MoviePreviewCallOutUPP userUPP);
  4838.  
  4839.     EXTERN_API(void)
  4840.     DisposeTextMediaUPP               (TextMediaUPP            userUPP);
  4841.  
  4842.     EXTERN_API(void)
  4843.     DisposeActionsUPP               (ActionsUPP                userUPP);
  4844.  
  4845.     EXTERN_API(void)
  4846.     DisposeDoMCActionUPP           (DoMCActionUPP            userUPP);
  4847.  
  4848.     EXTERN_API(void)
  4849.     DisposeMovieExecuteWiredActionsUPP    (MovieExecuteWiredActionsUPP userUPP);
  4850.  
  4851.     EXTERN_API(void)
  4852.     DisposeMoviePrePrerollCompleteUPP    (MoviePrePrerollCompleteUPP userUPP);
  4853.  
  4854.     EXTERN_API(void)
  4855.     DisposeMoviesErrorUPP           (MoviesErrorUPP            userUPP);
  4856.  
  4857.     EXTERN_API(void)
  4858.     DisposeQTCallBackUPP           (QTCallBackUPP            userUPP);
  4859.  
  4860.     EXTERN_API(void)
  4861.     DisposeQTSyncTaskUPP           (QTSyncTaskUPP            userUPP);
  4862.  
  4863.     EXTERN_API(void)
  4864.     DisposeTweenerDataUPP           (TweenerDataUPP            userUPP);
  4865.  
  4866.     EXTERN_API(void)
  4867.     DisposeQTBandwidthNotificationUPP    (QTBandwidthNotificationUPP userUPP);
  4868.  
  4869.     EXTERN_API(void)
  4870.     DisposeMCActionFilterUPP       (MCActionFilterUPP        userUPP);
  4871.  
  4872.     EXTERN_API(void)
  4873.     DisposeMCActionFilterWithRefConUPP    (MCActionFilterWithRefConUPP userUPP);
  4874.  
  4875.     EXTERN_API(OSErr)
  4876.     InvokeMovieRgnCoverUPP           (Movie                    theMovie,
  4877.                                     RgnHandle                changedRgn,
  4878.                                     long                    refcon,
  4879.                                     MovieRgnCoverUPP        userUPP);
  4880.  
  4881.     EXTERN_API(OSErr)
  4882.     InvokeMovieProgressUPP           (Movie                    theMovie,
  4883.                                     short                    message,
  4884.                                     short                    whatOperation,
  4885.                                     Fixed                    percentDone,
  4886.                                     long                    refcon,
  4887.                                     MovieProgressUPP        userUPP);
  4888.  
  4889.     EXTERN_API(OSErr)
  4890.     InvokeMovieDrawingCompleteUPP    (Movie                    theMovie,
  4891.                                     long                    refCon,
  4892.                                     MovieDrawingCompleteUPP    userUPP);
  4893.  
  4894.     EXTERN_API(OSErr)
  4895.     InvokeTrackTransferUPP           (Track                    t,
  4896.                                     long                    refCon,
  4897.                                     TrackTransferUPP        userUPP);
  4898.  
  4899.     EXTERN_API(OSErr)
  4900.     InvokeGetMovieUPP               (long                    offset,
  4901.                                     long                    size,
  4902.                                     void *                    dataPtr,
  4903.                                     void *                    refCon,
  4904.                                     GetMovieUPP                userUPP);
  4905.  
  4906.     EXTERN_API(Boolean)
  4907.     InvokeMoviePreviewCallOutUPP    (long                    refcon,
  4908.                                     MoviePreviewCallOutUPP    userUPP);
  4909.  
  4910.     EXTERN_API(OSErr)
  4911.     InvokeTextMediaUPP               (Handle                    theText,
  4912.                                     Movie                    theMovie,
  4913.                                     short *                    displayFlag,
  4914.                                     long                    refcon,
  4915.                                     TextMediaUPP            userUPP);
  4916.  
  4917.     EXTERN_API(OSErr)
  4918.     InvokeActionsUPP               (void *                    refcon,
  4919.                                     Track                    targetTrack,
  4920.                                     long                    targetRefCon,
  4921.                                     QTEventRecordPtr        theEvent,
  4922.                                     ActionsUPP                userUPP);
  4923.  
  4924.     EXTERN_API(OSErr)
  4925.     InvokeDoMCActionUPP               (void *                    refcon,
  4926.                                     short                    action,
  4927.                                     void *                    params,
  4928.                                     Boolean *                handled,
  4929.                                     DoMCActionUPP            userUPP);
  4930.  
  4931.     EXTERN_API(OSErr)
  4932.     InvokeMovieExecuteWiredActionsUPP    (Movie                theMovie,
  4933.                                     void *                    refcon,
  4934.                                     long                    flags,
  4935.                                     QTAtomContainer            wiredActions,
  4936.                                     MovieExecuteWiredActionsUPP userUPP);
  4937.  
  4938.     EXTERN_API(void)
  4939.     InvokeMoviePrePrerollCompleteUPP    (Movie                theMovie,
  4940.                                     OSErr                    prerollErr,
  4941.                                     void *                    refcon,
  4942.                                     MoviePrePrerollCompleteUPP userUPP);
  4943.  
  4944.     EXTERN_API(void)
  4945.     InvokeMoviesErrorUPP           (OSErr                    theErr,
  4946.                                     long                    refcon,
  4947.                                     MoviesErrorUPP            userUPP);
  4948.  
  4949.     EXTERN_API(void)
  4950.     InvokeQTCallBackUPP               (QTCallBack                cb,
  4951.                                     long                    refCon,
  4952.                                     QTCallBackUPP            userUPP);
  4953.  
  4954.     EXTERN_API(void)
  4955.     InvokeQTSyncTaskUPP               (void *                    task,
  4956.                                     QTSyncTaskUPP            userUPP);
  4957.  
  4958.     EXTERN_API(ComponentResult)
  4959.     InvokeTweenerDataUPP           (TweenRecord *            tr,
  4960.                                     void *                    tweenData,
  4961.                                     long                    tweenDataSize,
  4962.                                     long                    dataDescriptionSeed,
  4963.                                     Handle                    dataDescription,
  4964.                                     ICMCompletionProcRecordPtr asyncCompletionProc,
  4965.                                     UniversalProcPtr        transferProc,
  4966.                                     void *                    refCon,
  4967.                                     TweenerDataUPP            userUPP);
  4968.  
  4969.     EXTERN_API(OSErr)
  4970.     InvokeQTBandwidthNotificationUPP    (long                flags,
  4971.                                     void *                    reserved,
  4972.                                     void *                    refcon,
  4973.                                     QTBandwidthNotificationUPP userUPP);
  4974.  
  4975.     EXTERN_API(Boolean)
  4976.     InvokeMCActionFilterUPP           (MovieController            mc,
  4977.                                     short *                    action,
  4978.                                     void *                    params,
  4979.                                     MCActionFilterUPP        userUPP);
  4980.  
  4981.     EXTERN_API(Boolean)
  4982.     InvokeMCActionFilterWithRefConUPP    (MovieController    mc,
  4983.                                     short                    action,
  4984.                                     void *                    params,
  4985.                                     long                    refCon,
  4986.                                     MCActionFilterWithRefConUPP userUPP);
  4987.  
  4988. #else
  4989.     enum { uppMovieRgnCoverProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  4990.     enum { uppMovieProgressProcInfo = 0x0000FAE0 };                 /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 4_bytes, 4_bytes) */
  4991.     enum { uppMovieDrawingCompleteProcInfo = 0x000003E0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  4992.     enum { uppTrackTransferProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  4993.     enum { uppGetMovieProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  4994.     enum { uppMoviePreviewCallOutProcInfo = 0x000000D0 };             /* pascal 1_byte Func(4_bytes) */
  4995.     enum { uppTextMediaProcInfo = 0x00003FE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  4996.     enum { uppActionsProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  4997.     enum { uppDoMCActionProcInfo = 0x00003EE0 };                     /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  4998.     enum { uppMovieExecuteWiredActionsProcInfo = 0x00003FE0 };         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  4999.     enum { uppMoviePrePrerollCompleteProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  5000.     enum { uppMoviesErrorProcInfo = 0x00000380 };                     /* pascal no_return_value Func(2_bytes, 4_bytes) */
  5001.     enum { uppQTCallBackProcInfo = 0x000003C0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes) */
  5002.     enum { uppQTSyncTaskProcInfo = 0x000000C0 };                     /* pascal no_return_value Func(4_bytes) */
  5003.     enum { uppTweenerDataProcInfo = 0x003FFFF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  5004.     enum { uppQTBandwidthNotificationProcInfo = 0x00000FE0 };         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  5005.     enum { uppMCActionFilterProcInfo = 0x00000FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
  5006.     enum { uppMCActionFilterWithRefConProcInfo = 0x00003ED0 };         /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  5007.     #define NewMovieRgnCoverUPP(userRoutine)                         (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture())
  5008.     #define NewMovieProgressUPP(userRoutine)                         (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture())
  5009.     #define NewMovieDrawingCompleteUPP(userRoutine)                 (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture())
  5010.     #define NewTrackTransferUPP(userRoutine)                         (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture())
  5011.     #define NewGetMovieUPP(userRoutine)                             (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture())
  5012.     #define NewMoviePreviewCallOutUPP(userRoutine)                     (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture())
  5013.     #define NewTextMediaUPP(userRoutine)                             (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture())
  5014.     #define NewActionsUPP(userRoutine)                                 (ActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActionsProcInfo, GetCurrentArchitecture())
  5015.     #define NewDoMCActionUPP(userRoutine)                             (DoMCActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDoMCActionProcInfo, GetCurrentArchitecture())
  5016.     #define NewMovieExecuteWiredActionsUPP(userRoutine)             (MovieExecuteWiredActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExecuteWiredActionsProcInfo, GetCurrentArchitecture())
  5017.     #define NewMoviePrePrerollCompleteUPP(userRoutine)                 (MoviePrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePrePrerollCompleteProcInfo, GetCurrentArchitecture())
  5018.     #define NewMoviesErrorUPP(userRoutine)                             (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture())
  5019.     #define NewQTCallBackUPP(userRoutine)                             (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture())
  5020.     #define NewQTSyncTaskUPP(userRoutine)                             (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture())
  5021.     #define NewTweenerDataUPP(userRoutine)                             (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  5022.     #define NewQTBandwidthNotificationUPP(userRoutine)                 (QTBandwidthNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTBandwidthNotificationProcInfo, GetCurrentArchitecture())
  5023.     #define NewMCActionFilterUPP(userRoutine)                         (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture())
  5024.     #define NewMCActionFilterWithRefConUPP(userRoutine)             (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture())
  5025.     #define DisposeMovieRgnCoverUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  5026.     #define DisposeMovieProgressUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  5027.     #define DisposeMovieDrawingCompleteUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  5028.     #define DisposeTrackTransferUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  5029.     #define DisposeGetMovieUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5030.     #define DisposeMoviePreviewCallOutUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
  5031.     #define DisposeTextMediaUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5032.     #define DisposeActionsUPP(userUPP)                                 DisposeRoutineDescriptor(userUPP)
  5033.     #define DisposeDoMCActionUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5034.     #define DisposeMovieExecuteWiredActionsUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
  5035.     #define DisposeMoviePrePrerollCompleteUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  5036.     #define DisposeMoviesErrorUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5037.     #define DisposeQTCallBackUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5038.     #define DisposeQTSyncTaskUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5039.     #define DisposeTweenerDataUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  5040.     #define DisposeQTBandwidthNotificationUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  5041.     #define DisposeMCActionFilterUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  5042.     #define DisposeMCActionFilterWithRefConUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
  5043.     #define InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  5044.     #define InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userUPP)  (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  5045.     #define InvokeMovieDrawingCompleteUPP(theMovie, refCon, userUPP)  (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  5046.     #define InvokeTrackTransferUPP(t, refCon, userUPP)                 (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppTrackTransferProcInfo, (t), (refCon))
  5047.     #define InvokeGetMovieUPP(offset, size, dataPtr, refCon, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
  5048.     #define InvokeMoviePreviewCallOutUPP(refcon, userUPP)             (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppMoviePreviewCallOutProcInfo, (refcon))
  5049.     #define InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  5050.     #define InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppActionsProcInfo, (refcon), (targetTrack), (targetRefCon), (theEvent))
  5051.     #define InvokeDoMCActionUPP(refcon, action, params, handled, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppDoMCActionProcInfo, (refcon), (action), (params), (handled))
  5052.     #define InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppMovieExecuteWiredActionsProcInfo, (theMovie), (refcon), (flags), (wiredActions))
  5053.     #define InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppMoviePrePrerollCompleteProcInfo, (theMovie), (prerollErr), (refcon))
  5054.     #define InvokeMoviesErrorUPP(theErr, refcon, userUPP)             CALL_TWO_PARAMETER_UPP((userUPP), uppMoviesErrorProcInfo, (theErr), (refcon))
  5055.     #define InvokeQTCallBackUPP(cb, refCon, userUPP)                 CALL_TWO_PARAMETER_UPP((userUPP), uppQTCallBackProcInfo, (cb), (refCon))
  5056.     #define InvokeQTSyncTaskUPP(task, userUPP)                         CALL_ONE_PARAMETER_UPP((userUPP), uppQTSyncTaskProcInfo, (task))
  5057.     #define InvokeTweenerDataUPP(tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon, userUPP)  (ComponentResult)CALL_EIGHT_PARAMETER_UPP((userUPP), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  5058.     #define InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppQTBandwidthNotificationProcInfo, (flags), (reserved), (refcon))
  5059.     #define InvokeMCActionFilterUPP(mc, action, params, userUPP)     (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppMCActionFilterProcInfo, (mc), (action), (params))
  5060.     #define InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userUPP)  (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  5061. #endif
  5062. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  5063. #define NewMovieRgnCoverProc(userRoutine)                         NewMovieRgnCoverUPP(userRoutine)
  5064. #define NewMovieProgressProc(userRoutine)                         NewMovieProgressUPP(userRoutine)
  5065. #define NewMovieDrawingCompleteProc(userRoutine)                 NewMovieDrawingCompleteUPP(userRoutine)
  5066. #define NewTrackTransferProc(userRoutine)                         NewTrackTransferUPP(userRoutine)
  5067. #define NewGetMovieProc(userRoutine)                             NewGetMovieUPP(userRoutine)
  5068. #define NewMoviePreviewCallOutProc(userRoutine)                 NewMoviePreviewCallOutUPP(userRoutine)
  5069. #define NewTextMediaProc(userRoutine)                             NewTextMediaUPP(userRoutine)
  5070. #define NewActionsProc(userRoutine)                             NewActionsUPP(userRoutine)
  5071. #define NewDoMCActionProc(userRoutine)                             NewDoMCActionUPP(userRoutine)
  5072. #define NewMovieExecuteWiredActionsProc(userRoutine)             NewMovieExecuteWiredActionsUPP(userRoutine)
  5073. #define NewMoviePrePrerollCompleteProc(userRoutine)             NewMoviePrePrerollCompleteUPP(userRoutine)
  5074. #define NewMoviesErrorProc(userRoutine)                         NewMoviesErrorUPP(userRoutine)
  5075. #define NewQTCallBackProc(userRoutine)                             NewQTCallBackUPP(userRoutine)
  5076. #define NewQTSyncTaskProc(userRoutine)                             NewQTSyncTaskUPP(userRoutine)
  5077. #define NewTweenerDataProc(userRoutine)                         NewTweenerDataUPP(userRoutine)
  5078. #define NewQTBandwidthNotificationProc(userRoutine)             NewQTBandwidthNotificationUPP(userRoutine)
  5079. #define NewMCActionFilterProc(userRoutine)                         NewMCActionFilterUPP(userRoutine)
  5080. #define NewMCActionFilterWithRefConProc(userRoutine)             NewMCActionFilterWithRefConUPP(userRoutine)
  5081. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon) InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userRoutine)
  5082. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon) InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userRoutine)
  5083. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon) InvokeMovieDrawingCompleteUPP(theMovie, refCon, userRoutine)
  5084. #define CallTrackTransferProc(userRoutine, t, refCon)            InvokeTrackTransferUPP(t, refCon, userRoutine)
  5085. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon) InvokeGetMovieUPP(offset, size, dataPtr, refCon, userRoutine)
  5086. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        InvokeMoviePreviewCallOutUPP(refcon, userRoutine)
  5087. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon) InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userRoutine)
  5088. #define CallActionsProc(userRoutine, refcon, targetTrack, targetRefCon, theEvent) InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userRoutine)
  5089. #define CallDoMCActionProc(userRoutine, refcon, action, params, handled) InvokeDoMCActionUPP(refcon, action, params, handled, userRoutine)
  5090. #define CallMovieExecuteWiredActionsProc(userRoutine, theMovie, refcon, flags, wiredActions) InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userRoutine)
  5091. #define CallMoviePrePrerollCompleteProc(userRoutine, theMovie, prerollErr, refcon) InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userRoutine)
  5092. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        InvokeMoviesErrorUPP(theErr, refcon, userRoutine)
  5093. #define CallQTCallBackProc(userRoutine, cb, refCon)                InvokeQTCallBackUPP(cb, refCon, userRoutine)
  5094. #define CallQTSyncTaskProc(userRoutine, task)                    InvokeQTSyncTaskUPP(task, userRoutine)
  5095. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon) InvokeTweenerDataUPP(tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon, userRoutine)
  5096. #define CallQTBandwidthNotificationProc(userRoutine, flags, reserved, refcon) InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userRoutine)
  5097. #define CallMCActionFilterProc(userRoutine, mc, action, params)    InvokeMCActionFilterUPP(mc, action, params, userRoutine)
  5098. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon) InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userRoutine)
  5099.  
  5100. /* selectors for component calls */
  5101. enum {
  5102.     kVideoMediaResetStatisticsSelect                = 0x0105,
  5103.     kVideoMediaGetStatisticsSelect                    = 0x0106,
  5104.     kVideoMediaGetStallCountSelect                    = 0x010E,
  5105.     kVideoMediaSetCodecParameterSelect                = 0x010F,
  5106.     kVideoMediaGetCodecParameterSelect                = 0x0110,
  5107.     kTextMediaSetTextProcSelect                        = 0x0101,
  5108.     kTextMediaAddTextSampleSelect                    = 0x0102,
  5109.     kTextMediaAddTESampleSelect                        = 0x0103,
  5110.     kTextMediaAddHiliteSampleSelect                    = 0x0104,
  5111.     kTextMediaDrawRawSelect                            = 0x0109,
  5112.     kTextMediaSetTextPropertySelect                    = 0x010A,
  5113.     kTextMediaRawSetupSelect                        = 0x010B,
  5114.     kTextMediaRawIdleSelect                            = 0x010C,
  5115.     kTextMediaFindNextTextSelect                    = 0x0105,
  5116.     kTextMediaHiliteTextSampleSelect                = 0x0106,
  5117.     kTextMediaSetTextSampleDataSelect                = 0x0107,
  5118.     kSpriteMediaSetPropertySelect                    = 0x0101,
  5119.     kSpriteMediaGetPropertySelect                    = 0x0102,
  5120.     kSpriteMediaHitTestSpritesSelect                = 0x0103,
  5121.     kSpriteMediaCountSpritesSelect                    = 0x0104,
  5122.     kSpriteMediaCountImagesSelect                    = 0x0105,
  5123.     kSpriteMediaGetIndImageDescriptionSelect        = 0x0106,
  5124.     kSpriteMediaGetDisplayedSampleNumberSelect        = 0x0107,
  5125.     kSpriteMediaGetSpriteNameSelect                    = 0x0108,
  5126.     kSpriteMediaGetImageNameSelect                    = 0x0109,
  5127.     kSpriteMediaSetSpritePropertySelect                = 0x010A,
  5128.     kSpriteMediaGetSpritePropertySelect                = 0x010B,
  5129.     kSpriteMediaHitTestAllSpritesSelect                = 0x010C,
  5130.     kSpriteMediaHitTestOneSpriteSelect                = 0x010D,
  5131.     kSpriteMediaSpriteIndexToIDSelect                = 0x010E,
  5132.     kSpriteMediaSpriteIDToIndexSelect                = 0x010F,
  5133.     kSpriteMediaGetSpriteActionsForQTEventSelect    = 0x0110,
  5134.     kSpriteMediaSetActionVariableSelect                = 0x0111,
  5135.     kSpriteMediaGetActionVariableSelect                = 0x0112,
  5136.     kSpriteMediaGetIndImagePropertySelect            = 0x0113,
  5137.     kSpriteMediaNewSpriteSelect                        = 0x0114,
  5138.     kSpriteMediaDisposeSpriteSelect                    = 0x0115,
  5139.     kSpriteMediaSetActionVariableToStringSelect        = 0x0116,
  5140.     kSpriteMediaGetActionVariableAsStringSelect        = 0x0117,
  5141.     kFlashMediaSetPanSelect                            = 0x0101,
  5142.     kFlashMediaSetZoomSelect                        = 0x0102,
  5143.     kFlashMediaSetZoomRectSelect                    = 0x0103,
  5144.     kFlashMediaGetRefConBoundsSelect                = 0x0104,
  5145.     kFlashMediaGetRefConIDSelect                    = 0x0105,
  5146.     kFlashMediaIDToRefConSelect                        = 0x0106,
  5147.     kFlashMediaGetDisplayedFrameNumberSelect        = 0x0107,
  5148.     kFlashMediaFrameNumberToMovieTimeSelect            = 0x0108,
  5149.     kFlashMediaFrameLabelToMovieTimeSelect            = 0x0109,
  5150.     kMovieMediaGetChildDoMCActionCallbackSelect        = 0x0102,
  5151.     kMovieMediaGetDoMCActionCallbackSelect            = 0x0103,
  5152.     kMovieMediaGetCurrentMoviePropertySelect        = 0x0104,
  5153.     kMovieMediaGetCurrentTrackPropertySelect        = 0x0105,
  5154.     kMovieMediaGetChildMovieDataReferenceSelect        = 0x0106,
  5155.     kMovieMediaSetChildMovieDataReferenceSelect        = 0x0107,
  5156.     kMovieMediaLoadChildMovieFromDataReferenceSelect = 0x0108,
  5157.     kMedia3DGetNamedObjectListSelect                = 0x0101,
  5158.     kMedia3DGetRendererListSelect                    = 0x0102,
  5159.     kMedia3DGetCurrentGroupSelect                    = 0x0103,
  5160.     kMedia3DTranslateNamedObjectToSelect            = 0x0104,
  5161.     kMedia3DScaleNamedObjectToSelect                = 0x0105,
  5162.     kMedia3DRotateNamedObjectToSelect                = 0x0106,
  5163.     kMedia3DSetCameraDataSelect                        = 0x0107,
  5164.     kMedia3DGetCameraDataSelect                        = 0x0108,
  5165.     kMedia3DSetCameraAngleAspectSelect                = 0x0109,
  5166.     kMedia3DGetCameraAngleAspectSelect                = 0x010A,
  5167.     kMedia3DSetCameraRangeSelect                    = 0x010D,
  5168.     kMedia3DGetCameraRangeSelect                    = 0x010E,
  5169.     kMedia3DGetViewObjectSelect                        = 0x010F,
  5170.     kMCSetMovieSelect                                = 0x0002,
  5171.     kMCGetIndMovieSelect                            = 0x0005,
  5172.     kMCRemoveAllMoviesSelect                        = 0x0006,
  5173.     kMCRemoveAMovieSelect                            = 0x0003,
  5174.     kMCRemoveMovieSelect                            = 0x0006,
  5175.     kMCIsPlayerEventSelect                            = 0x0007,
  5176.     kMCSetActionFilterSelect                        = 0x0008,
  5177.     kMCDoActionSelect                                = 0x0009,
  5178.     kMCSetControllerAttachedSelect                    = 0x000A,
  5179.     kMCIsControllerAttachedSelect                    = 0x000B,
  5180.     kMCSetControllerPortSelect                        = 0x000C,
  5181.     kMCGetControllerPortSelect                        = 0x000D,
  5182.     kMCSetVisibleSelect                                = 0x000E,
  5183.     kMCGetVisibleSelect                                = 0x000F,
  5184.     kMCGetControllerBoundsRectSelect                = 0x0010,
  5185.     kMCSetControllerBoundsRectSelect                = 0x0011,
  5186.     kMCGetControllerBoundsRgnSelect                    = 0x0012,
  5187.     kMCGetWindowRgnSelect                            = 0x0013,
  5188.     kMCMovieChangedSelect                            = 0x0014,
  5189.     kMCSetDurationSelect                            = 0x0015,
  5190.     kMCGetCurrentTimeSelect                            = 0x0016,
  5191.     kMCNewAttachedControllerSelect                    = 0x0017,
  5192.     kMCDrawSelect                                    = 0x0018,
  5193.     kMCActivateSelect                                = 0x0019,
  5194.     kMCIdleSelect                                    = 0x001A,
  5195.     kMCKeySelect                                    = 0x001B,
  5196.     kMCClickSelect                                    = 0x001C,
  5197.     kMCEnableEditingSelect                            = 0x001D,
  5198.     kMCIsEditingEnabledSelect                        = 0x001E,
  5199.     kMCCopySelect                                    = 0x001F,
  5200.     kMCCutSelect                                    = 0x0020,
  5201.     kMCPasteSelect                                    = 0x0021,
  5202.     kMCClearSelect                                    = 0x0022,
  5203.     kMCUndoSelect                                    = 0x0023,
  5204.     kMCPositionControllerSelect                        = 0x0024,
  5205.     kMCGetControllerInfoSelect                        = 0x0025,
  5206.     kMCSetClipSelect                                = 0x0028,
  5207.     kMCGetClipSelect                                = 0x0029,
  5208.     kMCDrawBadgeSelect                                = 0x002A,
  5209.     kMCSetUpEditMenuSelect                            = 0x002B,
  5210.     kMCGetMenuStringSelect                            = 0x002C,
  5211.     kMCSetActionFilterWithRefConSelect                = 0x002D,
  5212.     kMCPtInControllerSelect                            = 0x002E,
  5213.     kMCInvalidateSelect                                = 0x002F,
  5214.     kMCAdjustCursorSelect                            = 0x0030,
  5215.     kMCGetInterfaceElementSelect                    = 0x0031,
  5216.     kMCGetDoActionsProcSelect                        = 0x0032,
  5217.     kMusicMediaGetIndexedTunePlayerSelect            = 0x0101
  5218. };
  5219.  
  5220. #if PRAGMA_STRUCT_ALIGN
  5221.     #pragma options align=reset
  5222. #elif PRAGMA_STRUCT_PACKPUSH
  5223.     #pragma pack(pop)
  5224. #elif PRAGMA_STRUCT_PACK
  5225.     #pragma pack()
  5226. #endif
  5227.  
  5228. #ifdef PRAGMA_IMPORT_OFF
  5229. #pragma import off
  5230. #elif PRAGMA_IMPORT
  5231. #pragma import reset
  5232. #endif
  5233.  
  5234. #ifdef __cplusplus
  5235. }
  5236. #endif
  5237.  
  5238. #endif /* __MOVIES__ */
  5239.  
  5240.